皈依舞
2023-02-17 15:46:03
有人可以解釋一下 nodejs 中 setImmediate() 函數的實時用例嗎?我瀏覽了很多博客,但他們在每個地方都給出了帶有 setImmediate 的 console.log 示例。
1 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
setImmediate()
當您想推遲運行某些代碼或調用某些回調直到當前事件已完全處理并且控制權返回到事件循環之后時,此方法很有用。
您可能想要這樣做的原因有很多:
在運行某些代碼之前,您希望其他(已經掛起的)事件有機會得到處理。
你想調用一個回調,但你想異步調用它,以便在你調用回調之前運行后面的調用者代碼。在 nodejs 庫中有一些地方這樣做是為了保證回調總是被異步調用,即使結果是同步已知的。這為調用者創建了編程一致性,因此回調不會有時被同步調用,有時被異步調用,這會導致細微的錯誤。
當您試圖不阻塞事件循環太久時。您可以運行一段代碼,然后在調用回調
setImmediate()
時調用并運行下一段代碼,setImmediate()
依此類推。這允許在您的處理塊之間處理到達事件循環的其他事件。
將這篇文章設置為易于閱讀的setImmediate()
,setTimeout()
和摘要process.nextTick()
:
Node.js 中的調度執行 - setTimeout、setImmediate 和 process.nextTick 之間的區別。
以下是 nodejs 和 Express 源代碼中的一些示例:
Express 在中止時調用sendFile()
回調回調,僅在堆棧展開后
添加回答
舉報
0/150
提交
取消