Closed javierlopeza closed 6 years ago
el callback (que contiene ese console.log("Timeout!)
) es agregado inmediatamente a la callback queue. Sin embargo, recuerda que el proceso sólo irá a mirar si hay algo en la cola una vez que el stack de ejecución se vacía. Y tanto la llamada a setTimeout como el siguiente console.log("Hello!")
están dentro del mismo elemento del stack de ejecución (el "main" si es que es sólo esto lo ejecutado). Entonces la cola no se irá a mirar hasta después que se ejecuta el último console.log.
Respecto a este ejemplo:
Si donde dice
<--- aquí --->
existe código que toma mucho tiempo antes de llegar a imprimirHello!
(digamos unfor
owhile
muy largo), y tomando el Timeout que demora prácticamente nada, ¿puede pasar que se imprimaTimeout!
antes queHello!
? En el caso que estoy pensando el callback del Timeout se agregará al Event Queue en algún momento durante el<--- aquí --->
y si justo antes de imprimirHello!
el Event Loop mira el Call Stack estará vacío y pienso que podría agregar al Call Stack el callback que imprimeTimeout!
, lo que se ejecutaría antes de imprimirHello!
.Traté de probar con un
for
largo para simular esto, pero aún así se imprime primeroHello
y despuésTimeout!
. No sé si hay algo malo en mi razonamiento arriba o sí está pasando algo especial.