nodejs非同期モジュール:https://github.com/caolan/asyncには、2つの同様のメソッドasync.waterfall
とasync.series
があります。async.waterfallとasync.seriesの違いは何ですか
これらの違いは何ですか?
nodejs非同期モジュール:https://github.com/caolan/asyncには、2つの同様のメソッドasync.waterfall
とasync.series
があります。async.waterfallとasync.seriesの違いは何ですか
これらの違いは何ですか?
async.waterfall
は、各関数がその結果を次の関数に渡すことを可能にし、async.series
はすべての結果を最終コールバックに渡します。より高いレベルでは、async.waterfall
は、データパイプライン(「与えられた2、3を掛け、2を加算し、17で割る」)であり、async.series
は、順番に実行されなければならないが、 。
両方の関数は、すべての関数の戻り値を次の関数に渡します。そして、完了すると、エラーが発生した場合にエラーを渡してメインのコールバックを呼び出します。
違いはasync.series()
です。シリーズが終了すると、すべての結果がメインコールバックに渡されます。 async.waterfall()
は、呼び出された最後の関数の結果だけをメインコールバックに渡します。
これは答えです;-) –
@Mario "どちらの関数もコールバックを渡しますOR "両方の関数が前の関数の結果を渡す"? – user1451111
@ user1451111、結果、笑...私は初めてそれを書いたと確信しています... – Mario
async.waterfall()
は、action that relies on the previous outcome
を扱っています。
async.series()
see all the result at the end
恐ろしく作成された画像。自分で作成したのですか、それとも別の場所に持ってきましたか? – user1451111
イメージありがとうございます。シンプルでクリアです。いいぞ。 –
ありがとう!!!!今私はついに理解する:) –
したいアクションを扱っているが、それは、これら2つの関数のいずれかが値を返すことは可能ですか?私はそれが可能であることを読んだが、ドキュメンテーションのどこでも関連情報を見つけることができない。 –
@AndersonGreen:いいえ。ライブラリのソースを見ると、 'waterfall'も' series'も値を返しません。結果が何であれ、オプションのコールバックパラメータで使用されることが期待されます。 – Twisol
上記の答えは2012年に戻っても正しいかもしれませんが、正しいものは次のものと同じです:series()は、すべての結果がFinalコールバックに渡されるという名前で、waterfallは最後に渡された結果です最終的なコールバックに転送します。 [Mozilla Developer](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data) – Jeb50