Ini adalah kesalahan umum di antara pemula async/nodejs. Anda pada dasarnya telah membungkus fungsi async di dalam fungsi sinkronisasi yang memecah sifat loop acara simpul. Ekspresi pengembalian perlu diganti dengan panggilan balik. Lihat di bawah:
// Method
function getUserInfo (userID, dynamicField, callback) {
var query = connection.query('SELECT '+dynamicField+' from users WHERE userID = '+connection.escape(userID));
query.on('result', function(row) {
callback(null, row.dynamicField);
});
};
// Implementation
getUserInfo(8, userEmail, function(err, result){
console.log(err || result);
});
Secara konvensi, di Nodejs kami selalu melewatkan objek kesalahan terlebih dahulu dalam panggilan balik. Dalam hal ini karena tidak ada kesalahan untuk ditangkap, kami melewatkan null sebagai gantinya.