Async: ウォーターフォールの最初の関数に引数を渡しますか?

作成日 2011年02月25日  ·  9コメント  ·  ソース: caolan/async

ウォーターフォールの最初の関数に引数を渡すことはできないようです。

いくつかの変数を取得するために最初のものが本当に必要なので、これは他の方法で行うことができますか?

最も参考になるコメント

async.waterfall([
    async.apply(func1, "1")
], function (err, result) {

});

function func1(par1, callback) {
    console.log(par1); // Outputs: 1
}

全てのコメント9件

必要な変数を使用して関数を呼び出すダミー関数を定義します。 このような:
async.waterfall([

function(cb)
{
  cb(null, username, password);
},
Authenticate,...

グレートハック=)

別の方法は、async.apply(authenticate、username、password)を使用して引数を事前にバインドすることです。

async.waterfall([
    async.apply(func1, "1")
], function (err, result) {

});

function func1(par1, callback) {
    console.log(par1); // Outputs: 1
}

@adisosありがとう! +1

うーん...素晴らしいハック、本当に...私も最初のウォーターフォール関数にパラメーターを渡すことができないことに戸惑いました...しかし、これはバグ/矛盾としてモジュールの作者(caolan)に投稿するべきではありませんか? これらのハックで、そのメソッドのすべてのすっきりが消えます...:-/

これは、これらのメソッドの使用目的です。 async.applyは、主にこのユースケースAFAIKのために追加されました

ドキュメントには、関数でウォーターフォールを使用する例が示されていますが、誰かがreadmeを修正して、applyでウォーターフォールを使用することを示したい場合は素晴らしいでしょう

:+1: @adisosの適用は素晴らしいです! 私はこのライブラリをほんの少ししか使用しておらず、絶えず感銘を受けています。

それでもこの問題が発生する場合は、定数関数が非常にうまく機能します。

async.waterfall([
    async.constant(42),
    function (value, next) {
        // value === 42
    },
], callback);

詳細については、 http://caolan.github.io/async/docs.html#.constantをご覧

このページは役に立ちましたか?
0 / 5 - 0 評価