node.js异步瀑布调用以前的方法

时间:2016-10-27 09:00:47

标签: javascript node.js asynchronous

无论如何,我们可以通过以下方法调用async.waterfall中的先前方法。

async.waterfall([

        function (callback) {

        },
    function (reservationStatus, callback) {

        },

        function (reservationStatusList, frontOfficeStatusList, callback) {

            callToPreviosFunction();
        }
    ], function (err, result) {
        res.json(result);
    });

2 个答案:

答案 0 :(得分:2)

是我们可以在async.waterfall中调用前一个函数。 请查看以下修改后的代码。

var async = require('async');

async.waterfall([
   a,b,c
], function (err, result) {
    console.log(err);
    console.log(result);
});


function a(callback) {
        console.log("function 1");
        callback(null,"true");
    };
function b(reservationStatus, callback) {
        console.log("function 2");
        callback(null,"true","true");
    };
function c(reservationStatusList, frontOfficeStatusList, callback) {
        console.log("function 3");
        b("confirmed",function(err,result){
            if(err){
                callback(err,null);
            }else{
                callback(null,result);
            }
        }); 
    };

正如您在上面修改的b()代码中看到的那样,再次在c()中调用。

输出:

function 1
function 2
function 3
function 2

答案 1 :(得分:0)

将此函数从当前函数返回到下一个函数。它应该工作