Proszę spojrzeć na fragment kodu poniżej. Mam tablicę obiektów JSON o nazwie "stuObjList". Chcę przechodzić przez tablicę, aby znaleźć określone obiekty JSON z określonym zestawem flag, a następnie wykonać wywołanie db, aby pobrać więcej danych.w nodejs, jak zatrzymać pętlę FOR, aż wywołanie mongodb zwróci
Oczywiście, pętla FOR nie czeka na wywołanie db i osiąga koniec z j == długość. A gdy wywołanie db zwróci, indeks "j" wykracza poza indeks tablicy. Rozumiem, jak działa plik node.js i jest to oczekiwane zachowanie.
Moje pytanie brzmi, co tu się dzieje. Jak mogę osiągnąć to, co próbuję osiągnąć? Dzięki, --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 ... wielkie dzięki. Wypróbuję to i dam ci znać, jak to działa. –
@Clint ... to działało. Wielkie dzięki! –