El enstringmiento en Node.js se puede lograr usando el módulo async npm. Para instalar el módulo asíncrono, necesitamos ejecutar el siguiente script en nuestro directorio:
npm init npm i async
Hay dos métodos más utilizados para enstringr funciones proporcionadas por el módulo asíncrono:
- paralelo (tareas, devolución de llamada): las tareas son una colección de funciones que se ejecutan en paralelo en la práctica a través de la conmutación de E/S. Si alguna función en las tareas de recopilación devuelve un error, se activa la función de devolución de llamada. Una vez que se completan todas las funciones, los datos se pasan a la función de devolución de llamada como una array. La función de devolución de llamada es opcional.
- series (tareas, devolución de llamada) : cada función en tareas se ejecuta solo después de que se completa la función anterior. Si alguna de las funciones arroja un error, las funciones posteriores no se ejecutan y la devolución de llamada se activa con un valor de error. Al completar las tareas, los datos se pasan a la función de devolución de llamada como una array.
Ejemplo 1: Nombre de
archivo de enstringmiento paralelo: index.js
const async = require('async'); async.parallel([ (callback) => { setTimeout(() => { console.log('This is the first function'); callback(null, 1); }, 500); }, (callback) => { console.log('This is the second function'); callback(null, 2); } ], (err, results) => { if (err) console.error(err); console.log(results); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
This is the second function This is the first function [ 1, 2 ]
Explicación: Se observa que las dos funciones se ejecutaron de forma asíncrona. Por lo tanto, la salida de la segunda función se recibió antes de que la primera función terminara de ejecutarse debido al método setTimeout(). Sin embargo, los datos solo se pasan a la devolución de llamada una vez que ambas funciones terminan de ejecutarse.
Ejemplo 2: Enstringmiento de series Nombre de
archivo: index.js
const async = require('async'); async.series([ (callback) => { setTimeout(() => { console.log('This is the first function'); callback(null, 1); }, 500); }, (callback) => { console.log('This is the second function'); callback(null, 2); } ], (err, results) => { if (err) console.error(err); console.log(results); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
This is the first function This is the second function [ 1, 2 ]
Explicación: a diferencia de la ejecución en paralelo, en este caso, la segunda función no se ejecutó hasta que la primera función completó su propia ejecución. Similar al método paralelo, los resultados solo se pasan a la función de devolución de llamada una vez que todas las funciones en la colección de tareas terminan de ejecutarse.
Publicación traducida automáticamente
Artículo escrito por tirtharajsengupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA