回调后async.each没有中断(错误)

时间:2017-10-20 06:20:13

标签: javascript node.js async.js

我想在遇到错误后突破循环。

var async = require('async');  

var objs = [{name:'A'}, {name:'B'}, {name:'C'}];  

function doSomething(obj, cb)  
{  
  console.log("Processing" + obj.name);  
  cb();  
}  
async.each(objs, function(obj, callback) {  
  doSomething(obj, function(){  
      callback("It's a err.");  
  });  
}, function(err){
    if(err)
     console.log("err is:" + err);  
}); 

我想它会在第一次迭代后爆发。但它输出:

ProcessingA
err is:It's a err.
ProcessingB
ProcessingC

不应该在调用回调(错误)后停止迭代。如果没有,为什么它只调用一次?我无法看到这背后的想法。它只是在第一个之后忽略了其他可能的错误?

documentation中指出:

  // One of the iterations produced an error.
   // All processing will now stop.

0 个答案:

没有答案