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