我正在处理下面的代码片段。我有一个名为“stuObjList”的 JSON 对象数组。我想遍历数组以查找具有特定标志集的特定 JSON 对象,然后进行数据库调用以检索更多数据。
当然,FOR 循环不会等待数据库调用返回,而是以 j == length 结束。并且当数据库调用返回时,索引“j”超出了数组索引。我了解 node.js 的工作原理,这是预期的行为。
这里的解决方法是什么?我怎样才能实现我想要实现的目标?
...............
...............
...............
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);
});
}
}
}
});