2012-02-13 39 views

回答

149

看起來async.waterfall允許每個函數將其結果傳遞給下一個函數,而async.series將所有結果傳遞給最終回調函數。在更高層次上,async.waterfall將用於數據流水線(「給定2,乘以3,加2併除以17」),而async.series將用於離散任務,其必須按順序執行,否則是分開的。

+0

的行動是否有可能使用這兩種功能返回一個值?我讀過這可能,但我無法在文檔中的任何位置找到相關信息。 – 2012-09-23 16:30:49

+1

@安德森綠色:不。查看庫源文件,'waterfall'和'series'都不會返回值。預計無論結果將在可選的回調參數中使用。 – Twisol 2012-09-23 21:16:37

+0

上面的答案可能正確的回到2012年,但正確的是與下一個相同,即:series(),因爲它被命名爲所有結果作爲一系列傳遞給Final回調,而瀑布是最後傳遞的結果到最後的回調。請參閱[Mozilla開發人員](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data) – Jeb50 2017-09-14 16:31:28

44

這兩個函數都會將每個函數的返回值傳遞給下一個函數,然後當完成時會調用主回調函數,並在發生錯誤時傳遞錯誤。

不同的是,async.series(),一旦系列結束,將所有結果傳遞給主回調。 async.waterfall()只會傳遞給最後一個函數調用的結果。

+0

這應該是答案;-) – 2017-02-04 01:01:31

+0

@Mario「這兩個函數傳遞迴調前面的函數「OR」這兩個函數都傳遞前一個函數的結果「? – user1451111 2017-04-14 08:20:45

+0

@ user1451111,結果,大聲笑...我相信我已經寫了第一次,雖然... – Mario 2017-04-14 15:54:28

17

async.waterfall()正在處理action that relies on the previous outcome

async.series()正在處理的是要see all the result at the end

+1

令人驚歎的創建圖像。你自己創造了它們還是把它們帶到了別的地方? – user1451111 2017-04-14 08:15:09

+0

感謝您的圖片;簡單明瞭。豎起大拇指。 – 2017-07-27 07:53:09

+0

謝謝!現在我終於明白了:) – 2017-12-04 04:43:10

相關問題