Asyncjs : Bypass a function in a waterfall chain

asynchronous, callback, node.js, waterfall

Solution

An alternative might be:

var tasks = [f1];

if(myBool){
    tasks.push(f2);
}

tasks.push(f3);

async.waterfall(tasks, function(err, result){
});

where `f1`, `f2`, and `f3` are your functions.

other than that, you're better off doing it explicitly, avoid making your code overly complicated, simpler is usually better

update:

function f1(done){
    if(myBool){
        f2(done);
    }else{
        done();
    }
}

function f2(done){
    async.nextTick(function(){
        // stuff
        done();
    });
}

async.waterfall([f1,f3],function(err,result){
    // foo
});

Problem

I want to jump a function from a chain of waterfall functions with `asyncjs` in `nodejs`. My code look like this : ``` async.waterfall([ function(next){ if(myBool){ next(null); }else{ // Bypass the 2nd function } }, // I want to bypass this method if myBool is false in the 1st function function(next){ }, // Always called function(next){ } ]); ``` Do you know a proper way to do this without put : ``` if(!myBool){ return next(); } ``` In the function I want to bypass. Thanks !

Original source