La operación asíncrona en Node.js es una operación sin bloqueo, lo que significa que si realizamos una operación asíncrona en un punto determinado del código, el código posterior se ejecuta y no espera a que se complete esta operación asíncrona.
Si queremos calcular la duración de una operación asíncrona, podemos hacerlo fácilmente dentro de nuestra función asíncrona usando la sintaxis que se menciona a continuación.
Sintaxis:
const calcTime = async () => { const start = Date.now(); await someAsyncOperation(); const end = Date.now() const duration = end - start; }
Configuración del proyecto:
Paso 1: Instale Node.js si aún no lo ha hecho.
Paso 2: Cree una carpeta para su proyecto y cd (cambiar de directorio) en ella. Cree un nuevo archivo llamado app.js dentro de esa carpeta.
Estructura del proyecto: después de seguir los pasos, la estructura de su proyecto se verá así.
En el ejemplo de código que se menciona a continuación, hemos simulado una operación asíncrona usando el método setTimeout() . Realizamos la operación de suma dentro de una función asíncrona que devuelve una promesa. Esta promesa se resuelve con el resultado de la suma después de 2 segundos. Finalmente, calculamos y mostramos el tiempo necesario para realizar la operación de suma dentro de nuestra IIFE (Expresión de función invocada inmediatamente).
app.js
const asyncAdd = async (a, b) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(a + b); }, 2000); }); }; (async() => { const startTime = Date.now(); const res = await asyncAdd(5, 2); const endTime = Date.now(); const timeTaken = endTime - startTime; console.log(`Result of addition = ${res}`); console.log(`Time taken to perform addition = ${timeTaken} milliseconds`); })();
Paso para ejecutar la aplicación: Podemos ejecutar nuestro archivo app.js usando el siguiente comando en la línea de comandos.
node app.js
Producción:
Publicación traducida automáticamente
Artículo escrito por shivamsingh00141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA