亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Nodejs setImmediate() 函數實時用例和示例

Nodejs setImmediate() 函數實時用例和示例

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

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

setImmediate()當您想推遲運行某些代碼或調用某些回調直到當前事件已完全處理并且控制權返回到事件循環之后時,此方法很有用。

您可能想要這樣做的原因有很多:

  1. 在運行某些代碼之前,您希望其他(已經掛起的)事件有機會得到處理。

  2. 你想調用一個回調,但你想異步調用它,以便在你調用回調之前運行后面的調用者代碼。在 nodejs 庫中有一些地方這樣做是為了保證回調總是被異步調用,即使結果是同步已知的。這為調用者創建了編程一致性,因此回調不會有時被同步調用,有時被異步調用,這會導致細微的錯誤。

  3. 當您試圖不阻塞事件循環太久時。您可以運行一段代碼,然后在調用回調setImmediate()時調用并運行下一段代碼,setImmediate()依此類推。這允許在您的處理塊之間處理到達事件循環的其他事件。

將這篇文章設置為易于閱讀的setImmediate(),setTimeout()和摘要process.nextTick()

Node.js 中的調度執行 - setTimeout、setImmediate 和 process.nextTick 之間的區別。

以下是 nodejs 和 Express 源代碼中的一些示例:

套接字:確保異步調度寫入

HTTP:確保在堆棧展開之前不會刪除解析器

只有在堆棧展開后,Express 才會在層路由中調用回調

Express 在中止時調用sendFile()回調回調,僅在堆棧展開后


查看完整回答
反對 回復 2023-02-17
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號