0
我有三個操作做彼此的NodeJS-異步:返回MySQL查詢結果爲循環
1.Fetch之後,從DB
2.Another MySQL查詢一些行的for循環用於獲取的一些數據和存儲在變量
3.顯示數據
對於我使用async
waterfall
方法。
async.waterfall([
function(callback){
//first sql and pass the result to second function
collection.getAllCollections(function (status,error,result) {
callback(null,result);
});
},
//running another query in loop with result with previous
function(result, callback){
for(var i=0;i<result.length;i++){
collection.getImages(result[i].id,function (status,error,user) {
//append the query result to old result
result[i]['users'] = user;
});
}
callback(null,result);
}
], function (err, result) {
console.log("result",result);
});
但問題最終result
不會因爲第二個查詢(在for循環是異步查詢)
但是,在可以把'isDone'功能?我正在使用異步瀑布方法 – Jabaa
@Jabaa我更新了我的代碼以闡明我的解決方案。這應該工作,但我沒有測試它。 – jpschack
@Jabaa我再次更新了我的答案。使用async.parallel可以提供更好,更清潔,更高效的解決方案。這應該讓你朝正確的方向發展。 – jpschack