基本上,我试图找出一种方法来在 for 循环中执行一堆查询,然后在它们全部完成后执行某些操作。
我让它工作了,但这只是因为我使用了这个很棒的库,它用 Promise 包装了所有 mongodb。
var mongo = require('mongod')
var db = mongo('mongodb://localhost/builder', ['block''])
var block_ids = ['538d097bbb12479d0e9f70ab', '538ddc7d06c1f0fe296178b1'];
var prom = null;
var blocks = [];
for (i in block_ids) {
var block_id = block_ids[i];
prom = db.block.findOne({_id:db.ObjectId(block_id)})
.then(function(results) {
blocks.push(results);
})
}
prom.done(function() {
console.dir(blocks)
console.log("DONE! " + blocks.length)
})
我的问题是这个。在没有承诺的情况下,你到底怎么能做类似的事情?好像会很辛苦!