複数のコレクションのデータが必要な場合は、すべてのデータをマージします。私は逐次実行のための非同期モジュールを使用しています。私はと呼ばれる最初のforeachループsholudための内部(第2)のforeachループコールバック関数を完了した後に、このコードでasync.forEach iteration
var newArray = new Array();
common.findAllById('list',{'boardId': parseInt(bId)},function(err,result){
if(err) console.log(err);
else{
if(result != null){
async.forEachSeries(result, function (res, callback){
common.findAllById('cards',{'listId':parseInt(res.listId)},function(err,temp){
if(err){ callback("errr"+err);}
else{
var arr = new Array();
async.forEachSeries(temp, function(tmp,callbackFn){
common.findAllById('checklist',{'cardId':parseInt(tmp.cardId)}, function(err,r){
if(err){
callbackFn("errr"+err);
}
else{
if(r !== null){
console.log("r:");
tmp.checklists = r;
arr.push(tmp);
callbackFn(err);
}
}
});
},function(err){
console.log('arr');
res.cards = arr;
console.log(res);
});
newArray.push(res);
callback(err);
}
});
}, function (err){
console.log('after:');
console.log(newArray);
return response.send(newArray);
});
}
}
});
のようなコードを書いたが、第2、foreachループの最初の繰り返しの後の最初のループのコールバックが呼び出されると、それは第二のforeachを続行しますループ反復。このコードで何が間違っているのか教えてください。 ありがとうございます!
あなたは本当に、このコードはほとんど読みやすいです( 'NPM行いますseq'をインストール)フロー制御ライブラリのいずれかを使用して考慮すべきである – framp