And*_*rea 2 javascript foreach json asynchronous node.js
我开始开发我的node.js应用程序,但我不能"想到异步".在我的函数中,我必须进行查询,并且对于每一行,我必须执行另一个查询来计算最终结果并创建我的json.我试着这样做:
async.series([
function(callback) {
db.myCannedResponseList(req.params.websiteid, function(err,questions) {
if (err) return callback(err);
...
callback();
});
},
function(callback) {
async.forEachSeries(temp,function(quest,callback) {
db.getCannedAnswer(quest.id, function(err,answers) {
console.log(answers);
});
}, function(err) {
if (err) return next(err);
});
callback();
}
],
function(err) {
if (err) return next(err);
res.json(output);
});
Run Code Online (Sandbox Code Playgroud)
但是有一个问题:getCannedAnswer的结果是在res.json(输出)之后显示的.我怎么解决呢?
完成后需要调用回调forEachSeries
.您还需要调用传递给forEachSeries
处理函数的回调:
async.forEachSeries(temp, function(quest, callback2) {
db.getCannedAnswer(quest.id, function(err, answers) {
console.log(answers);
// call the callback for forEachSeries so it can proceed:
callback2();
});
}, callback); // forEachSeries is done here, call the callback for async.series
Run Code Online (Sandbox Code Playgroud)