Explica cómo el Event Loop coordina el Call Stack, las colas, los checkpoints de microtasks y las oportunidades de renderizado sin interrumpir el trabajo actual.
Los navegadores manejan distintas fuentes de tareas: eventos, timers, networking, mensajes y otras. El runtime puede elegir entre fuentes respetando las reglas de la plataforma.
Por eso el modelo educativo de “una callback queue” es útil para empezar, pero incompleto.
La reacción de la promesa también espera a que termine el código actual, aunque se procesa como microtask y tiene una prioridad de checkpoint distinta a una task de timer.
let state ="idle";asyncfunctionload(){
state ="loading";const data =awaitfetchData();
state ="success";return data;}
Entre la suspensión y la continuación, otros eventos pueden cambiar estado externo. La función conserva su entorno, pero el mundo alrededor puede haber cambiado.
¿Por qué un timer de 0 milisegundos puede tardar mucho más?
Respuesta
Porque el retraso indica un mínimo antes de que la callback pueda quedar elegible. Todavía debe terminar el trabajo actual, procesarse las microtasks y llegar una oportunidad donde el host elija esa task.