2017-06-28 8 views
0

私はwaterfallで使われている関数の単体テストを書く必要があるので、waterfallの外で定義されたbodyを持つ必要がありますが、何か私は行方不明ですか?なぜasync.waterfallをこのように使うことができないのですか

async.waterfall([ 
    one(cb), 
    two(cb) 
    ],function(){}); 

var function one(cb){cb(null)} 
var function one(cb){cb(null)} 
+0

こんにちは男に続きを読む:https://caolan.github.io/async/docs.html – anhlee

答えて

0

だけ変数として関数を記述し、それらを参照:

var one = function (cb) {console.log('1'); cb(null); } 
var two = function (cb) {console.log('2'); cb(null); } 

async.waterfall([ 
    one, 
    two 
    ], function() { 
    console.log('done'); 
}); 
0

は編集:

async.waterfall([ 
    one, 
    two, 
    ], function (err, result) { 
    // result now equals null 
}); 

function one(cb) { 
    cb(null, null); 
} 

function two(arg1, cb) { 
    cb(null, arg1); 
} 

そしてデモでそれを試してみてください。

async.waterfall([ 
    function(callback) { 
     callback(null, 'one', 'two'); 
    }, 
    function(arg1, arg2, callback) { 
     // arg1 now equals 'one' and arg2 now equals 'two' 
     callback(null, 'three'); 
    }, 
    function(arg1, callback) { 
     // arg1 now equals 'three' 
     callback(null, 'done'); 
    } 
], function (err, result) { 
    // result now equals 'done' 
}); 

//あるいは、名前付き関数:

async.waterfall([ 
    myFirstFunction, 
    mySecondFunction, 
    myLastFunction, 
], function (err, result) { 
    // result now equals 'done' 
}); 
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, callback) { 
    // arg1 now equals 'three' 
    callback(null, 'done'); 
} 

とで続きを読む、Link

関連する問題