async.js : async.eachSeries 结果总是抛出 undefined

async.js : async.eachSeries result always throw undefined

我的代码有问题吗?我使用 async.eachSeries 但我的结果总是抛出 undefined。

这是我的代码:

async.eachSeries([1,2,3], function(data, cb) {
    setTimeout(function() {
        cb(null, data+1);
    }, 1000);
}, function(err, result) {
    console.log(err, result);
});

我的日志返回:null,未定义而不是 null[2,3,4]

谢谢...抱歉我的英语很糟糕 XD

第二个参数在迭代完成时调用,对于 eachSeries(),它只需要一个参数,err。如果你想要 result,你必须使用 mapSeries:

async.mapSeries([1, 2, 3],
    function (data, cb) {
        setTimeout(function () {
            cb(null, data + 1);
        }, 1000);
    },
    function (err, result) {
        console.log(result);
    }
);

您也可以使用 eachSeries() 的结果形式:

var result = [];
async.eachSeries([1,2,3], function(data, cb) {
    setTimeout(function() {
        result.push(data+1);
        cb(null);
    }, 1000);
}, function(err) {
    console.log(err, result);
});

虽然我现在无法亲自测试,但应该可以。