繁体   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