訊息佇列和宏任務佇列有什么區別?是一樣的嗎?
在這里的 Nodejs 檔案中它說:
呼叫 setTimeout() 時,瀏覽器或 Node.js 會啟動計時器。一旦計時器到期,在這種情況下,我們立即將 0 作為超時,回呼函式被放入訊息佇列中。
而在本節中,它說:
一個 setTimeout, setImmediate 回呼被添加到宏任務佇列
那么,訊息佇列和宏任務佇列是一回事嗎?
uj5u.com熱心網友回復:
這里指的是同一個東西。可以說“訊息佇列”是一個更籠統的術語,如“微任務佇列和宏任務佇列都是訊息佇列”。
uj5u.com熱心網友回復:
如果我沒看錯的話,“訊息佇列”似乎是一個通用術語,它是使用幾個不同的佇列實作的。
在本節中,他們解釋:
將 process.nextTick 回呼添加到 process.nextTick 佇列。一個 Promise.then() 回呼被添加到 Promise 微任務佇列中。將 setTimeout、setImmediate 回呼添加到宏任務佇列。
看起來宏任務、微任務等是實作的特定部分,并且具有不同的屬性。
例如執行順序:
事件回圈先執行process.nextTick佇列中的任務,然后執行promises microtask queue,再執行macrotask queue。
在這里找到另一個簡單的解釋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492161.html
標籤:javascript 节点.js
