async.each(spiders, function(){
console.log('hi');
}, function(err) {
if(err) { console.log(err);}
else console.log('ok');
});
记录 'hi' 后,async 不执行回调并记录 'ok' 或错误。
我的代码有什么问题?
最佳答案
async
为 iterator
函数提供了两个重要参数:一个 item
和一个 callback
。第一个为您提供数组中的实际数据项,第二个是一个函数,用于指示实际方法的结束。当每个迭代器调用指示它们自己的回调时,最终回调(带有 log('ok') 的回调)被调用。
所以你的代码应该是这样的:
async.each(spiders, function(item, callback) {
console.log('spider: ' + item);
callback(null);
}, function(err) {
if (err) {
return console.log(err);
}
console.log('ok');
});
null
参数表示没有错误。另请注意,像这样处理错误是更好的做法。
关于node.js - async.each() 最终回调未执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30150751/