Medir la duración de las operaciones asíncronas en Node.js

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

Deja una respuesta

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