使用https://github.com/caolan/async 努力通过异步运行循环,因此找到循环执行结束处理。 和
results=[]
async.forEach(nfiles, function(item ){
console.log(item);
results.push(item);
}, function(err){ /// result call back
console.log('in last');
});
为什么控制台没有进入结果回拨?
假设nfiles是一个数组,并且在每次迭代时将项放入结果中,因此在迭代结束时它应该在控制台中控制inlast但不执行此操作。
答案 0 :(得分:3)
你的forEach的第二个参数 - 迭代器函数 - 需要将回调作为参数接受,并在执行时调用它(表明它已完成)。你需要像这样调用回调:
results=[]
async.forEach(nfiles, function(item, callback){
console.log(item);
results.push(item);
callback(null, item);
}, function(err){ /// result call back
console.log('in last');
});
(未测试的)