Repaso
English
Frontend y webAvanzadoFE-04

¿En qué orden se registran las letras?

console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => console.log("C"));
console.log("D");

Opciones

  1. A B C D
  2. A D C B (Opción correcta)
  3. A D B C
  4. A C D B

Respuesta

A D C B

Por qué

JavaScript corre en un thread con un event loop:

  1. Primero se ejecuta todo el código normal (síncrono): A y luego D.
  2. Luego se vacía la cola de microtasks: callbacks de promesas → C.
  3. Después se ejecuta la siguiente macrotask: timers como setTimeout → B.

Así que los callbacks de promesas siempre van antes que los timers, incluso con timers a 0 ms.

Recuerda

Código síncrono → callbacks de promesas (microtasks) → timers (macrotasks).

Términos clave

Practica esta pregunta en Repaso