यह async/nodejs शुरुआती लोगों के बीच एक सामान्य गलती है। आपने अनिवार्य रूप से एक सिंक फ़ंक्शन के अंदर एक एसिंक फ़ंक्शन लपेट लिया है जो नोड के ईवेंट लूप की प्रकृति को तोड़ देता है। वापसी अभिव्यक्ति को कॉलबैक के साथ प्रतिस्थापित करने की आवश्यकता है। नीचे देखें:
// 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);
});
कन्वेंशन के अनुसार, Nodejs में हम हमेशा कॉलबैक में पहले एक एरर ऑब्जेक्ट पास करते हैं। इस मामले में चूंकि कैप्चर करने में कोई त्रुटि नहीं है, हम इसके स्थान पर शून्य को पास कर देते हैं।