【发布时间】:2016-05-28 15:16:26
【问题描述】:
在 node.js 中,我想要一个 foreach async.parallel 在另一个里面。但是我收到“回调已被调用”错误(查看我的代码的注释)。我希望仅在内部完成后调用外部回调。我该怎么做?
async = require("async");
var asyncTasks = [];
var items = [];
/* push elements to items */
items.forEach(function(item){
var asyncTasks2 = [];
var items2 = [];
asyncTasks.push(function(callback2){
item.someAsyncCall(function(){
/* push elements to items2 */
items2.forEach(function(item2){
item2.someAsyncCall(function(){
callback2();
})
}
asyncTasks2.push(function(callback2){
setTimeout(function(){
callback2();
}, 100000);
});
async.parallel(asyncTasks2, function(){
// All tasks are done now
doSomethingOnceAllAreDone();
callback(); // callback was already called
});
});
});
});
asyncTasks.push(function(callback){
setTimeout(function(){
callback();
}, 100000);
});
async.parallel(asyncTasks, function(){
// All tasks are done now
doSomethingOnceAllAreDone();
});
【问题讨论】:
标签: node.js asynchronous