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