Probé este código y el resultado que esperaba era obtener primero el registro de Chicken, pero estaba equivocado, cada vez que ejecuto este código obtengo primero el registro de Egg, ¿alguien sabe qué está pasando aquí?
setTimeout(() => { console.log("Egg"); }, 1); setTimeout(() => { console.log("Chicken"); }, 0);Editar: tenga en cuenta que esto se comporta de manera diferente si esos retrasos son de 101 ms y 100 ms respectivamente, por lo que el comportamiento cambia incluso si la diferencia en el temporizador sigue siendo de 1 ms
El tiempo en milisegundos que el temporizador debe esperar antes de que se ejecute la función o el código especificado. 1000ms será 1 segundo y dado que su entrada a un parámetro fue 1ms JS simplemente lo mostró en el orden en que fue escrito porque 1ms y 0ms eran comparables. Además, puede usar async-await para esperar tareas que tomarían más tiempo. Por ejemplo,
function timeout(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function printOnTime() {{ console.log("Chicken") await timeout(1000); console.log("Egg") }} printOnTime();En este ejemplo, Chicken se imprimirá lo antes posible; sin embargo, para imprimir Egg, esperará 1 segundo (1000 ms) y finalmente imprimirá Egg.