如何实现一系列具有某些条件的异步任务集?

How to implement set of async task with some condition in series?

我必须在 nodejs 中编写以下代码:

val1 = async1()
if(val1 == 0){
 val1 = async2()
}
val2 = async3(val1)

上面代码中,val1val2是异步函数返回的值async1()async2()async3()如何实现?

你可以使用 async.

以上伪代码可以通过waterfall方法实现

实施示例:

async.waterfall([
    function(callback){
        callback(null, async1());
    },
    function(val1, callback){
        if(val1==0){
            callback(null, async2());
        } else {
            callback(null, val1);
        }
    }, function(val1, callback){
        callback(null, async3(val1));
    }
    ], function(error, val2){
            <you get val2 here>
});