[英]Wait until foreach finishes
目前,我正在使用node-mysql(https://github.com/felixge/node-mysql),對於從數據庫返回的每個結果,我必須執行多個功能。 當前,它嘗試一次完成所有操作,但是有沒有辦法讓它等到每個功能完成后再從mysql移至下一個結果?
connection.query('select * from data', function(err, rows) {
for (var i = 0; i < rows.length; i++) {
doThis(rows[i].axn, rows[i].dnq, rows[i].bgq);
}
});
在doThis函數中,如果滿足某些要求,則它將數據傳遞給另一個函數。 我怎樣才能確保這些是移動,直到下一個查詢行之前先完成?
先感謝您!
如果您有doThis
函數支持在工作完成時調用的回調參數,則可以使用async
庫的forEachSerial
方法非常干凈地執行此操作。
像這樣:
connection.query('select * from data', function(err, rows) {
async.forEachSeries(rows, function(row, callback) {
doThis(row.axn, row.dnq, row.bgq, callback);
}, function(err) {
// All done
});
});
每行數據都會觸發result
事件,請參閱文檔
connection.query('select * from data')
.on('result', function(row) {
doThis(row.axn, row.dnq, row.bgq);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.