2012-02-13 7 views

Respuesta

149

Parece que async.waterfall permite que cada función pase sus resultados a la siguiente función, mientras que async.series pasa todos los resultados a la devolución de llamada final. En un nivel superior, async.waterfall sería para una canalización de datos ("dado 2, multiplíquelo por 3, agregue 2 y divida por 17"), mientras que async.series sería para tareas discretas que deben realizarse en orden, pero por lo demás están separadas .

+0

¿Es posible que cualquiera de estas dos funciones para devolver un valor? He leído que es posible, pero no puedo encontrar información relevante en ningún lugar de la documentación. –

+1

@AndersonGreen: No. Al mirar la fuente de la biblioteca, ni 'waterfall' ni' series' devuelven un valor. Se espera que cualquiera que sea el resultado se utilizará en el parámetro de devolución de llamada opcional. – Twisol

+0

La respuesta anterior puede ser correcta hasta 2012, pero la correcta es la misma que la siguiente, que es: series() como se llama que TODOS los resultados como una serie pasaron a la devolución de llamada final, y la cascada es el ÚLTIMO resultado pasado a la devolución de llamada final. Ver [Mozilla Developer] (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data) – Jeb50

44

Ambas funciones pasan el valor de retorno, de cada función a la siguiente, y cuando lo haga llamará a la devolución de llamada principal, pasando su error, si ocurre un error.

La diferencia es que async.series(), una vez que la serie haya finalizado, pasará todos los resultados a la devolución de llamada principal. async.waterfall() pasará a la devolución de llamada principal solo el resultado de la última función llamada.

+0

Esta debería ser la respuesta ;-) –

+0

@Mario "Ambas funciones pasan la devolución de llamada de la función anterior "O" Ambas funciones pasan el resultado de la función anterior "? – user1451111

+0

@ user1451111, Resultado, lol ... Estoy seguro de haber escrito eso la primera vez ... – Mario

17

async.waterfall() se trata de un action that relies on the previous outcome.

async.series() se trata de una acción que quiere see all the result at the end

+1

Imágenes increíblemente creadas. ¿Los creaste tú mismo o los conseguiste en otro lado? – user1451111

+0

Gracias por las imágenes; simple y claro. Pulgares hacia arriba. –

+0

Gracias !!!! Ahora finalmente entiendo :) –

Cuestiones relacionadas