Javascript 等到foreach完成

Javascript 等到foreach完成,javascript,node.js,Javascript,Node.js,目前我正在使用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

目前我正在使用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);
 }
});
connection.query('select*from data',函数(err,rows){
对于(变量i=0;i
在doThis函数中,如果满足某些要求,则会将数据传递给另一个函数。如何确保在移动到下一个查询行之前先完成这些操作


提前谢谢你

如果您有
dot,则可以使用
async
库的方法非常清晰地执行此操作。此
函数支持在其工作完成时调用的回调参数

大概是这样的:

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
    });
});

如果您有
dot,则可以使用
async
库的方法非常清晰地执行此操作。此
函数支持在完成工作时调用的回调参数

大概是这样的:

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
事件在每行数据上激发,请参阅


result
事件在每行数据上激发,请参阅


如果
中的任何内容都是异步的,我认为您不能。你必须使用回调和递归的概念来做你想做的事情。如果
中的任何东西都是异步的,我认为你不能。你必须使用回调和递归的概念来做你想做的事情。谢谢你的回复,我甚至没有看到这个!我会试试这个,再次谢谢。谢谢你的回复,我甚至没有看到这个!我会试试这个,再次谢谢。