异步瀑布传递参数

时间:2016-03-29 18:33:17

标签: node.js node-async

我有一个关于将async.waterfall()中的参数传递给第三个函数而不是第一个函数的问题。例如,如下所示

async.waterfall([
   first,
   second,
   async.apply(third, obj)
], function(err, result){});

现在可以在名为 third 的函数中使用“obj”作为参数,并且还可以使用从名为 second <的函数的回调传递下来的参数/ p>

1 个答案:

答案 0 :(得分:22)

是。你可以做到这一点。见下文。看到最后一个功能。

    var async = require('async');

    async.waterfall([
        myFirstFunction,
        mySecondFunction,
        async.apply(myLastFunction, 'deen'),
    ], function (err, result) {
        console.log(result);
    });
    function myFirstFunction(callback) {
        callback(null, 'one', 'two');
    }
    function mySecondFunction(arg1, arg2, callback) {
        // arg1 now equals 'one' and arg2 now equals 'two'
        callback(null, 'three');
    }
    function myLastFunction(arg1, arg2, callback) {
        // arg1 is what you have passed in the apply function
        // arg2 is from second function
        callback(null, 'done');
    }