0
を完了するために、すべてのModel.findを待っている私持って、次の2つのMonogooseモデル:Node.jsのは、 - ()
ClanMember: tag:String, name:string;
War: members:Array; #array of tags
私は現在で現在のメンバーの配列を発見しています:
ClanMember.find({
'tag': {
$in: memberTags #an array of tags
}
}).limit(memberTags.length)
.exec(function(err, members) {
}
このことから私は、War.find()
Sを実行し、その情報を各メンバーのドキュメントを追加したい、このようなので:
ClanMember.find({
'tag': {
$in: memberTags
}
}).limit(memberTags.length)
.exec(function(err, members) {
var MemberArray = [];
for (var member in members) {
if (members.hasOwnProperty(member)) {
var currentMember = members[member];
War.find({members: currentMember.tag}).exec(function(err, wars) {
currentMember.wars = wars;
MemberArray.push(currentMember);
});
}
}
#I WANT TO RENDER HERE
});
後
res.render('members', {
members: MemberArray,
});
すべてWar.find()関数が発見されていることを保証する最善の方法は何ですか:すべてが起こるこれは、私は、ビューに(戦争オブジェクトとの)メンバーオブジェクトの全く新しい配列を渡したいのですがレンダリング関数に配列を渡す前に実行を終了しましたか?
私の回答も選択してください –
ありがとうございました。しかしこれは私のためにはうまくいきません。 'warPromise'内の' currentMember'変数は常に配列の最後の 'member'要素です。私は 'console.log(currentMember.tag')'同じタグが返された場合.. – GarethPrice
私は今どこで戦闘を見つけるときにコールバック構文を使用するように私の答えを編集しました。私はそれを約束に変えた。今すぐお試しください。 –