¿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
- A B C D
- A D C B (Opción correcta)
- A D B C
- A C D B
Respuesta
A D C B
Por qué
JavaScript corre en un thread con un event loop:
- Primero se ejecuta todo el código normal (síncrono): A y luego D.
- Luego se vacía la cola de microtasks: callbacks de promesas → C.
- 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).