簡體   English   中英

等到foreach完成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM