¿Hay otra forma de lograr el mismo comportamiento de programar una función de devolución de llamada en la cola de mensajes de JavaScript para que se ejecute después de que la pila actual esté vacía?
En otras palabras, ¿hay alguna manera, ya sea con Promises o con paquetes de terceros, de enviar una devolución de llamada a la cola de tareas para que se ejecute después de que la pila actual esté vacía?
En otras palabras, ¿cuáles son algunos equivalentes/alternativas a pasar 0 a setTimeout para aprovechar la devolución de llamada asíncrona?
Las respuestas para todos los entornos y todas las versiones de ECMAScript son bienvenidas.
En el entorno nodejs, puede realizar las tareas asíncronas de la siguiente manera.
Árbitro. https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
setImmediate(() => console.log("setImmediate")); setTimeout(() => console.log("setTimeout")); Promise.resolve().then(() => console.log("Promise")); process.nextTick(() => console.log("nextTick")); console.log("sync");Producción:
sync nextTick Promise setTimeout setImmediateEn el navegador moderno, puede realizar las tareas asíncronas de la siguiente manera.
setTimeout(() => console.log("setTimeout")); Promise.resolve().then(() => console.log("Promise")); console.log("sync");