Mire el fragmento de código siguiente. Tengo una matriz de objetos JSON llamada 'stuObjList'. Quiero hacer un bucle a través de la matriz para encontrar objetos JSON específicos con un determinado conjunto de banderas, y luego hacer una llamada db para recuperar más datos.en nodejs, cómo detener un bucle FOR hasta que la llamada mongodb devuelva
Por supuesto, el bucle FOR no espera a que la llamada db regrese y alcanza el final con j == length. Y cuando la llamada db retorna, el índice 'j' está más allá del índice de matriz. Entiendo cómo funciona node.js y este es el comportamiento esperado.
Mi pregunta es, ¿cuál es el trabajo por aquí. ¿Cómo puedo lograr lo que intento lograr? Gracias, --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 ... muchas gracias. Voy a probar esto y dejarte saber cómo funciona. –
@Clint ... eso funcionó. ¡muchas gracias! –