【发布时间】:2012-01-05 23:12:32
【问题描述】:
所以我的代码看起来像:
var data = someobject;
for(var x in data){
mongo.findOne({ _id:data[x]._id },function(e,post){
if(post != null){
post.title = 'omg updated';
post.save(function(){
console.log('all done updating');
});
}
});
}
// I need all ^ those functions to be done before continuing to the following function:
some_function();
我研究了 Async 库,当我需要同时运行一定数量的函数时,我将其用于并行处理。但我不确定如何达到预期的效果。
所有这些功能都可以并行运行,我只需要知道什么时候完成。
【问题讨论】:
-
我不确定你是否正在寻找一个像样的库,但如果你只需要一些琐碎的东西,你可以有一个计数器:最初将其设置为
Object.keys(data).length,然后将其递减.save回调 - 当它到达0时,运行some_function()。 -
@pimvdb 可以工作(这正是我的想法),但是它只是一个启动和运行的小技巧,要获得正确的方法,需要一些 pub/子消息系统(不要让事件和回调过于混乱)
标签: javascript node.js asynchronous