我想结合使用async.each和async.series,但我得到了意想不到的结果。
async.each([1, 2], function(item, nloop) {
async.series([
function(callback) {
console.log("1");
callback();
},
function(callback) {
console.log("2");
callback();
},
function(callback) {
console.log("3");
callback();
},
function(callback) {
nloop();
}
]);
},function(){
});
我希望此代码输出123123
。
相反,我得到了112233
。我做错了什么?
答案 0 :(得分:2)
async.each()
applies the function iterator to each item in array in parallel。
如果您想以连续方式进行,则应使用eachSeries()
。
此外,您应该使用async.series(taskArray, callback)
中的最终回调:
async.eachSeries([1, 2], function(item, nextItem) {
async.series([
function(next) {
console.log("1");
next();
},
function(next) {
console.log("2");
next();
},
function(callback) {
console.log("3");
next();
}
], nextItem);
},function(){
});