Avanzado y Asyncmartes, 20 de enero de 2026

Event Loop

Cómo JS maneja la concurrencia.

Publicidad

Apoya a JS Fruggal visitando a nuestros patrocinadores.

JavaScript es de un solo hilo (un carril). Tiene una Pila de Llamadas (Call Stack). El Bucle de Eventos (Event Loop) es el controlador de tráfico que decide qué entra en esa pila.

El Carril Prioritario (Microtasks)

No todas las tareas son iguales.
MacroTasks (setTimeout, setInterval): Carril regular.
MicroTasks (Promesas, QueueMicrotask): Carril VIP.

El Event Loop siempre vacía el carril VIP (Promesas) antes de procesar el siguiente auto regular (setTimeout).

El Quiz Definitivo

Predice el orden antes de ejecutar esto. Esta es una pregunta de entrevista muy común.

console.log("1. Inicio");

setTimeout(() => {
  console.log("2. Timeout (Macro)");
}, 0);

Promise.resolve().then(() => {
  console.log("3. Promesa (Micro)");
});

console.log("4. Fin");

/*
Lógica del Orden:
1. "Inicio" (Síncrono)
2. "Fin" (Síncrono)
3. "Promesa" (Cola Microtask - Mayor Prioridad)
4. "Timeout" (Cola Macrotask - Menor Prioridad)
*/
Publicidad

Apoya a JS Fruggal visitando a nuestros patrocinadores.