Dit is een veelgemaakte fout bij async/nodejs-beginners. U hebt in wezen een asynchrone functie in een synchronisatiefunctie gewikkeld die de aard van de gebeurtenislus van het knooppunt doorbreekt. De return-expressie moet worden vervangen door een callback. Zie hieronder:
// 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);
});
Volgens afspraak geven we in Nodejs altijd eerst een foutobject door in de callback. In dit geval, aangezien er geen fout is om vast te leggen, geven we in plaats daarvan null door.