[英]how does reactor pattern work in Node.js?
一切都從應用程序開始,應用程序發出請求,事件多路分解器收集這些請求,然后形成隊列,即事件隊列。 事件解復用器由 libuv 運行,它是一個異步 IO 庫,允許 Node.js 執行 I/O。
在圖中,您會看到一個事件隊列。 實際上不僅有 1 個事件隊列,還有 7 個基本隊列。 這些隊列具有升序優先級,事件循環首先檢查最高優先級的隊列。
定時器隊列具有最高優先級。 setTimeout 和 setInterval 函數在這里排隊。 一旦事件在這個隊列中完成,或者時間到了,事件循環將這些函數傳遞給調用堆棧,在圖中它被命名為執行處理程序。
一旦其中一個事件隊列完成,而不是跳轉到下一個隊列,事件循環首先將檢查其他 2 個隊列,這些隊列將其他微任務和 process.nextTick 函數排隊。 然后它會跳到下一個隊列。 此圖將幫助您可視化事件循環。
如果事件隊列中沒有事件或事件解復用器沒有掛起的請求,則程序將完成。
注意:提到的回調隊列是事件隊列,調用堆棧是執行處理程序。
歸功於 packtpub.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.