The nodejs async module: https://github.com/caolan/async provides 2 similar methods, async.waterfall
and async.series
.
What is the difference between them?
The nodejs async module: https://github.com/caolan/async provides 2 similar methods, async.waterfall
and async.series
.
What is the difference between them?
It appears that
async.waterfall
allows each function to pass its results on to the next function, whileasync.series
passes all results to the final callback. At a higher level,async.waterfall
would be for a data pipeline ("given 2, multiply it by 3, add 2, and divide by 17"), whileasync.series
would be for discrete tasks that must be performed in order, but are otherwise separate.async.waterfall()
is dealing with anaction that relies on the previous outcome
.async.series()
is dealing with an action that wants tosee all the result at the end
Both functions pass the return value, of every function to the next, then when done will call the main callback, passing its error, if an error happens.
The difference is that
async.series()
, once the series have finished, will pass all the results to the main callback.async.waterfall()
will pass to the main callback only the result of the last function called.