以下のコードを見てください。私は 'stuObjList'と呼ばれるJSONオブジェクトの配列を持っています。特定のフラグが設定された特定のJSONオブジェクトを検索するために配列をループして、より多くのデータを取得するためのdb呼び出しを行いたいとします。(nodejs)、mongodb呼び出しが返るまでFORループを停止する方法
もちろん、FORループはdbコールが戻るまで待機せず、j == lengthの最後に達します。また、dbコールが返ってくると、インデックス 'j'は配列インデックスを超えています。私はnode.jsがどのように動作するかを理解しており、これは予想される動作です。
私の質問は、ここでの回避策は何ですか。私は達成しようとしていることをどのように達成することができますか?ありがとう、--su
...............
...............
...............
else
{
console.log("stuObjList.length: " + stuObjList.length);
var j = 0;
for(j = 0; j < stuObjList.length; j++)
{
if(stuObjList[j]['honor_student'] != null)
{
db.collection("students").findOne({'_id' : stuObjList[j]['_id'];}, function(err, origStuObj)
{
var marker = stuObjList[j]['_id'];
var major = stuObjList[j]['major'];
});
}
if(j == stuObjList.length)
{
process.nextTick(function()
{
callback(stuObjList);
});
}
}
}
});
@Clint ...多くのありがとう。私はこれを試して、それがどのように機能するかを教えてくれるでしょう。 –
@ Clint ...それは働いた。どうもありがとう! –