如何等待asynchronous完成 – NodeJs

我正在使用asynchronous来执行第二个数据库查询。 该查询的结果必须作为对象添加到第一个查询中。

问题是当asynchronous完成时,数据没有改变,因为他已经发送了未改变的数据。 有没有办法等待asynchronous完成?

我使用了一个超时,但数据的大小是未知的,所以这不是一个好的解决scheme。

到目前为止的代码:

connection.query('SELECT * FROM SENSORS', function(err,rows) { if(rows.length !== 0) { DEBUG_WRITE('sensor/','GET',200); async.eachSeries(rows, function(row, callback) { connection.query('SELECT * FROM LOCATIONS WHERE LocationID=?',row.LocationID, function (error, result) { row.location = result; callback(null,rows); }); }); res.status(200); res.send(rows); } else { DEBUG_WRITE('sensor','GET',404); res.status(404); res.send({status: "No entries found"}); } }); 

eachSeries接受一个基本上是“我完成”function的函数:

 connection.query('SELECT * FROM SENSORS', function(err,rows) { if(rows.length !== 0) { DEBUG_WRITE('sensor/','GET',200); async.eachSeries(rows, function(row, callback) { connection.query('SELECT * FROM LOCATIONS WHERE LocationID=?',row.LocationID, function (error, result) { row.location = result; callback(null,rows); }); }, function(err){ //treat this as "i'm done iterating" // if any of the iterations produced an error, err will equal that error if(err) { //do something with the error res.status(500); return res.send(err); } res.status(200); return res.send(rows); }); } else { DEBUG_WRITE('sensor','GET',404); res.status(404); res.send({status: "No entries found"}); } }); 

看到这里 – 它是一样的,所以function是一样的