¿Cuál es la diferencia entre async.waterfall y async.series?

async.waterfall: este método de cascada ejecuta todas las funciones (es decir, tareas) una por una y pasa el resultado de la primera función a la segunda, el resultado de la segunda función a la tercera, y así sucesivamente. Cuando una función pasa el error a su propia devolución de llamada, las siguientes funciones no se ejecutan. Entonces, la devolución de llamada principal se llama inmediatamente con el error. 

Sintaxis:

waterfall(tasks,callback)
  • tareas: se refiere a la array de funciones asíncronas. Cada función se ejecuta y envía el resultado como argumento a la siguiente función.
  • devolución de llamada:  una vez que se completan todas las funciones, se ejecuta la devolución de llamada. Esto tendrá argumentos del resultado de la devolución de llamada de la última tarea. La devolución de llamada es opcional. Se invoca con (err,[resultados]).

Nota: Para usar la función async.waterfall, primero debemos importarla.

javascript

import waterfall from 'async/waterfall';

Ejemplo: 

javascript

async.waterfall([
    function(callback) {
        callback(null, 'gfg', 'one');
    },
    function(arg1, arg2, callback) {
        // The arg1 now equals 'gfg'
        // and arg2 now equals 'one'
        callback(null, 'two');
    },
    function(arg1, callback) {
        // The arg1 now equals 'two'
        callback(null, 'complete');
    }
], function (err, result) {
    // Result now equals 'complete'
});

Salida: async.waterfall () pasará solo el resultado de la última función llamada a la devolución de llamada principal.

complete

async.series: el método async.series ejecuta las funciones en la colección de tareas en serie. Cada uno se ejecuta una vez que la función anterior se ha completado. Si alguna función de la serie pasa un error a su devolución de llamada, no se ejecutan más funciones. Luego, la devolución de llamada se llama inmediatamente con el valor del error. De lo contrario, la devolución de llamada recibe una array de resultados de todas las tareas cuando se completan las tareas.
 
 Sintaxis:

series(tasks,callback)
  • tareas: Es una colección de tareas o funciones en serie.
  • devolución de llamada: es un argumento opcional, invocado cuando ocurre un error en cualquiera de las funciones, de lo contrario, obtiene la array de los resultados de todas las tareas.

Nota: Para usar la función async.series, primero debemos importarla.  

javascript

import series from 'async/series';

Ejemplo: 

javascript

async.series([
    function(callback) {
        // do something...
        callback(null, 'one');
    },
    function(callback) {
        // do something...
        callback(null, 'two');
    }
],
// callback(optional)
function(err, results) {
    /* Results is now equal to
       ['one', 'two'] and this is
       returned from all the tasks
       executed above.*/
});

Salida: async.series  () , una vez que la serie haya terminado, pasará todos los resultados de todas las tareas a la devolución de llamada principal.

La principal diferencia entre async.waterfall y async.series es que: 

  • async.waterfall permite que cada función pase sus resultados a la siguiente función, mientras que async.series pasa todos los resultados de la tarea a la devolución de llamada final.
  • El async.waterfall() pasará solo el resultado de la última función llamada a la devolución de llamada principal. Pero, async.series pasará todo el resultado de la tarea a la devolución de llamada principal.

Publicación traducida automáticamente

Artículo escrito por vidhyasri15101999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *