Async.js eachSeries 不会因错误而停止

pix*_*eak 0 javascript asynchronous

我有一个需要按顺序异步处理的数组。如果其中一个失败,我需要继续处理其余部分,但我需要跟踪该错误,以便在整个过程结束时做一些事情。

阅读文档,看起来这个功能并没有真正内置到eachSeries. 似乎我必须调用callback()每项任务,表明它总是成功并自己跟踪错误。这样对吗?

Dav*_*hta 5

在这里自己跟踪错误不一定是坏事:

var errors = [];
async.eachSeries([1,2,3], function(data, cb) {
  if(some_error_case) {
    errors.push(data);
  }
  cb(null);
}, function(data) {
  console.log('errors happened: ', errors);
});
Run Code Online (Sandbox Code Playgroud)

cb(null)即使有错误也总是调用,否则它会过早地停止循环。然后将任何错误推送到errors数组中,并在最后的回调中处理它们。