setTimeout(() => console.log('1'), 1); setTimeout(() => console.log('4'), 0); setTimeout(() => console.log('3'), 2); setTimeout(() => console.log('2'), 0);Esperaba que la salida fuera 4,2,1,3 pero la salida es 1,4,2,3. ¿Cómo se ejecuta el primer setTimeout con retraso 1 incluso antes de 0?
Debido a que el tiempo que usó es mucho menor una vez que se ejecuta el código, se muestra según el flujo.
setTimeout(() => console.log('1'), 2000); setTimeout(() => console.log('4'), 0); setTimeout(() => console.log('3'), 3000); setTimeout(() => console.log('2'), 0);Es porque hasta, la línea número 2 setTimeout(() => console.log('4'), 0); está cargando/renderizando y convirtiendo a binario, antes de renderizar solamente, el 1 ms se completa, lo que resulta en 1 ms setTimeout() funcionando antes de 2 ms setTimeout()