只执行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
答案 0 :(得分:4)
我相信回调的第一个参数应该是null回调(null,“从1调用”)
答案 1 :(得分:2)
谢谢Fadi。 只是详细说明,这里的回调是强制签名 err,desc,..... other args 。 正如所观察到的那样,每当我在第一个参数中传递一个非空或非假值时,执行就会停止,然后 - 没有串行执行下一个函数,即在收到第一个真正的错误时停止。
另外,我假设在执行每个系列函数后将调用回调函数,但在执行了所有函数函数后实际调用它。
整改如下:
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
答案 2 :(得分:0)
回调函数中的第一个参数应为null,如下所示:
callback(null, "Called from 1");