结合异步.Each和async.series

Combining async.each and async.series

本文关键字:async series Each 异步 结合      更新时间:2023-09-26

我想结合async。Each和async。

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。我做错了什么?

async.each()对数组中的每一项并行应用函数迭代器。如果您想连续执行,您应该使用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(){
});