¿Cuál es la diferencia entre la cola de mensajes y la cola de macrotareas ? ¿Es la misma cosa?
En la documentación de Nodejs aquí dice:
Cuando se llama a setTimeout(), el navegador o Node.js inicia el temporizador. Una vez que el temporizador expira, en este caso inmediatamente cuando ponemos 0 como tiempo de espera, la función de devolución de llamada se coloca en la cola de mensajes.
Mientras que, en esta sección, dice:
Se agrega una devolución de llamada setTimeout, setImmediate a la cola de macrotareas
Entonces, ¿la cola de mensajes y la cola de macrotareas son lo mismo?
Se refiere a lo mismo aquí. Se podría decir que " cola de mensajes " es un término más general, como en " la cola de microtareas y la cola de macrotareas son ambas colas de mensajes ".
Si estoy leyendo esto correctamente, parece que "Cola de mensajes" es un término general que se implementa usando algunas colas diferentes.
En esta sección explican:
Se agrega una devolución de llamada process.nextTick a la cola process.nextTick. Se agrega una devolución de llamada Promise.then() a la cola de microtareas de promesas. Se agrega una devolución de llamada setTimeout, setImmediate a la cola de macrotareas.
Parece que la macrotarea, la microtarea, etc. son partes específicas de la implementación y tienen diferentes atributos.
Por ejemplo, orden de ejecución:
Event loop ejecuta tareas en la cola process.nextTick primero, y luego ejecuta la cola de microtareas de promesas, y luego ejecuta la cola de macrotareas.
Encontré otra explicación fácil aquí .