nodejs / js:即使在callback之后,也只执行async.series的第一个函数

只有async.series的第一个函数被执行,第二个甚至没有为下面的代码启动:

var async = require("async"); var src = 0; async.series([ function(callback) { callback("Called from 1"); }, function(callback){ callback("Called from 2"); }] , function (desc) { console.log(desc) src++ console.log(src+".1."+"--->"+src) console.log(src+".2."+"now it should return") } ); 

任何想法为什么这不是第二个?

输出:

 Called from 1 1.1.--->1 1.2.now it should return 

我相信callback的第一个参数应该是空callback(null,“从1调用”)

谢谢Fadi。 只是要详细说明,这里的callback与err,desc,…..其他参数的强制签名一起进行。 正如所观察到的,每当我在第一个参数中传递一个非空值或非错误值时,执行就停在那里,然后 – 不会执行下一个函数,即停在接收到的第一个真正的错误。

另外,我假设每个系列函数执行后都会调用这个callback函数,但是在所有的函数执行之后,实际上会调用它。

整理如下:

 var async = require("async"); var src = 0; async.series([ function(callback) { callback(null,"Called from 1"); }, function(callback){ callback(false,"Called from 2"); }] , function (err,desc) { console.log(desc) src++ console.log(src+".1."+"--->"+src) console.log(src+".2."+"now it should return") } ); 

输出:

 [ 'Called from 1', 'Called from 2' ] 1.1.--->1 1.2.now it should return 

callback函数中的第一个参数应该是null,如下所示:

callback(null, "Called from 1");

https://caolan.github.io/async/docs.html#series