Bucle de eventos: Fases en Node.js

Bucle de eventos

Fases del bucle de eventos en Node.js

Un bucle de eventos de Node.js es un concepto fundamental. Permite a los usuarios comprender los procesos asincrónicos y las E/S sin bloqueo. Convirtió a Node en un framework exitoso, poderoso y popular.


Ahora veamos cuáles son las fases del bucle de eventos.

  1. Temporizadores
  2. Devoluciones de llamada de E/S
  3. Esperando/Preparación
  4. Sondeo de E/S
  5. Devoluciones de llamada SetImmediate()
  6. Cerrar eventos

El ciclo de eventos comienza cuando Node.js comienza a ejecutar el archivo index.js. Un evento repite seis fases para crear un ciclo, que se denomina tic. El proceso de node.js finaliza cuando no hay trabajo pendiente en el bucle de eventos.

Repasemos estas fases una por una…

Temporizadores

Los temporizadores ejecutan devoluciones de llamada después de un período de tiempo. SetTimeout() y setInterval() son las dos funciones de temporizador.

Esta fase la ejecuta directamente el grupo de eventos. Primero, el bucle de eventos actualiza su propio tiempo y luego verifica una cola (que consta de todos los temporizadores configurados actualmente). Luego, toma el temporizador establecido más corto y lo compara con la hora actual del bucle de eventos. Si transcurre el tiempo de espera, la devolución de llamada de los temporizadores se pone en cola y si la pila de llamadas está vacía, se llama.

Devoluciones de llamadas de E/S

Esta es una fase de entrada y salida sin bloqueo.

Para hacerse una idea de las operaciones de E/S sin bloqueo, piense que su aplicación espera para leer un archivo. No tiene que esperar hasta que el sistema vuelva con el contenido del archivo. Puede ejecutar el código y recibir el contenido del archivo cuando esté listo. Esto es lo que llamamos E/S sin bloqueo (asíncrona). La solicitud de E/S asíncrona se registra en la cola y la pila de llamadas principal puede continuar con la ejecución como se esperaba. Luego se procesan las devoluciones de llamada de E/S para las operaciones de E/S completadas.

Esperando/Preparación

En la fase de espera, realice operaciones internas de cualquier devolución de llamada. Se utiliza principalmente para recopilar y planificar lo que se hará en el próximo ciclo de bucle de eventos.

Sondeo de E/S

  • Esta es la fase en la que se ejecuta todo el código JavaScript escrito.

 

  • Durante la fase, el bucle de eventos administrará la carga de trabajo de E/S, llamará a la función en la cola hasta que esté vacía y calculará la duración del tiempo para pasar a la siguiente fase.

 

  • Todas las devoluciones de llamada se llaman de forma síncrona y pueden bloquear nuestra aplicación si las devoluciones de llamada son lentas y no se ejecutan de forma asíncrona.

 

  • Si hay temporizadores setImmediate() programados en su aplicación, Node.js omitirá esta fase durante el ciclo actual y pasará a la siguiente fase. Por lo tanto, esta fase es opcional.

Devoluciones de llamada setImmediate()

Las devoluciones de llamada del temporizador setImmediate () se ejecutan en esta fase. Durante el ciclo de E/S, si se programa algún temporizador setImmediate(), siempre se ejecutará antes que cualquier otro temporizador.

Cerrar eventos

Todas las devoluciones de llamada de los eventos de cierre se ejecutan en esta fase. Como ejemplo, se llama a process.exit() o una devolución de llamada de socket web. Limpia principalmente el estado de tu aplicación.


¡Gracias por leer!

Recent Post