【问题标题】:async.series not working as expected Node.jsasync.series 未按预期工作 Node.js
【发布时间】:2015-06-03 13:15:24
【问题描述】:
var myFunction = function (param1,cb) {
    async.series([
        function(callback) {
            func1(param1,callback);//An error occurred here. I pass error to callback.
        },
        function(callback) {
            func2(param1,callback);
        },
        function(callback) {
            func3(callback);
        }
    ],function(err, results) {  //Its called immediately when error occurred in any of the above function, but the remaining function also keeps on executing in parallel.
        if (typeof cb === "function") {
            cb(err,results);
        }
});
};

如果在 func1 期间发生错误,我将错误传递给回调。

async.series 的回调在上述任何一个函数发生错误时立即调用,但其余函数也继续并行执行。

如果任何函数发生错误,我不希望执行其他函数。

【问题讨论】:

  • 您确定,您在 func1 或 func2 中的回调没有被调用两次吗?
  • 谢谢,这是个错误。
  • 我没有返回回调。我只是在叫它。我的错。

标签: node.js asynchronous


【解决方案1】:

我认为你必须使用瀑布来获得预期的结果。

var myFunction = function (param1,cb) {
async.waterfall([
    function(callback) {
            callback(param1);
        }
    function(param1 ,callback) {
        callback(param1);
    },
    function(param1 , callback) {

        callback(null, 'result');
    }
], function (err, result) {
     if (typeof cb === "function") {
            cb(err,results);
        }
});
}

【讨论】:

    猜你喜欢
    • 2014-05-24
    • 2012-06-02
    • 1970-01-01
    • 2017-12-14
    • 2021-12-01
    • 2021-06-04
    • 2022-01-24
    • 2015-05-11
    • 2020-05-15
    相关资源
    最近更新 更多