var leftpanefilter = {
"organization": [],
"speciality": [],
"city": []
};
dataSource.connector.query(getCitySQL, function(err, citylist) {
if (err) {
console.log("Error getting citylist");
} else {
try {
for (var i = 0; i < citylist.length; i++) {
leftpanefilter.city.push(citylist[i].name);
}
// callback(null, leftpanefilter);
} catch (err) {
console.log(err);
}
}
});
// Get list of organization which has openings
dataSource.connector.query(getOrgSQL, function(err, organizationlist) {
if (err) {
console.log("Error getting organizationlist");
} else {
try {
for (var i = 0; i < organizationlist.length; i++) {
leftpanefilter.organization.push(organizationlist[i].name);
}
} catch (err) {
console.log(err);
}
}
});
// Get list of specialities associated with openings
dataSource.connector.query(getCitySQL, function(err, specialitylist) {
if (err) {
console.log("Error getting specialitylist");
} else {
try {
for (var i = 0; i < specialitylist.length; i++) {
leftpanefilter.speciality.push(specialitylist[i].name);
}
} catch (err) {
console.log(err);
}
}
});
callback(null, leftpanefilter);
由於Nodejs的異步性質,回調會返回空白數據,而不會等待查詢執行。有誰知道如何使用承諾從查詢中獲取輸出數據?我無法弄清楚如何讓節點等待所有查詢完成。使用Promise需要幫助
承諾不是異步編碼的靈丹妙藥 –
它可能不是,但它確實可以幫助OP在這種情況下(在真正快速查找後)。 – Roberrrt