我正在尝试解决考试问题,因此无法按原样发布考试代码。因此,我进行了简化,以解决我不理解的核心概念。基本上,我不知道如何减慢节点的异步执行速度,以便我的 mongo 代码能够赶上它。这是代码:
MongoClient.connect('mongodb://localhost:27017/somedb', function(err, db) {
if (err) throw err;
var orphans = [];
for (var i; i < 100000; i++) {
var query = { 'images' : i };
db.collection('albums').findOne(query, function(err, doc_album) {
if(err) throw err;
if (doc_album === null) {
orphans.push(i);
}
});
}
console.dir(orphans.length);
return db.close();
});
所以我试图创建一个不符合我的查询条件的图像数组。我最终的 orphans.length 值为 0,因为 Node 不等待回调完成。如何修改代码,以便在计算数组中不符合查询条件的图像数量之前完成回调的执行?
在此先感谢您的时间。
巴拉特