Soy nuevo en Javascript y no puedo entender el comportamiento Async/Await. He leído que Await es para Promises y no debería afectar los artículos que no son promesas. Pero cuando usé Await con setTimeout , se comportó de manera diferente.
async function foo() { console.log('FIrst'); await setTimeout(()=>{console.log('timeout')},1000); console.log('Second'); } foo(); console.log('Three'); //Output is //FIrst //Three //Second //timeoutPero cuando quito esperar da
function foo() { console.log('FIrst'); setTimeout(()=>{console.log('timeout')},1000); console.log('Second'); } foo(); console.log('Three'); //Output is //FIrst //Second //Three //timeout Entonces, mi pregunta está en el primer código si en realidad está esperando que finalice settimeout, entonces ¿por qué está imprimiendo Second before timeout ? ¿No debería ser el tiempo de timeout Second
EDITAR: algunos comentarios dicen que se debe a la cola de microtareas, pero ¿puede explicar el flujo entre la cola de devolución de llamada y la cola de microtareas?