(八)nodejs循序渐进-事件驱动(进阶篇)
生活随笔
收集整理的這篇文章主要介紹了
(八)nodejs循序渐进-事件驱动(进阶篇)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
事件驅動程序
Node.js 使用事件驅動模型,當web server接收到請求,就把它關閉然后進行處理,然后去服務下一個web請求。
當這個請求完成,它被放回處理隊列,當到達隊列開頭,這個結果被返回給用戶。
這個模型非常高效可擴展性非常強,因為 webserver 一直接受請求而不等待任何讀寫操作。(這也稱之為非阻塞式IO或者事件驅動IO)
在事件驅動模型中,會生成一個主循環來監聽事件,當檢測到事件時觸發回調函數。
整個事件驅動的流程就是這么實現的,非常簡潔。有點類似于觀察者模式,事件相當于一個主題(Subject),而所有注冊到這個事件上的處理函數相當于觀察者(Observer)。
EventEmitter觸發器
大多數 Node.js 核心 API 構建于慣用的異步事件驅動架構,其中某些類型的對象(又稱觸發器,Emitter)會觸發命名事件來調用函數(又稱監聽器,Listener)。
例如 net.Server 會在每次有新連接時觸發事件 fs.ReadStream會在打開文件時觸發事件,stream會在數據可讀時觸發事件。
所有能觸發事件的對象都是 EventEmitter 類的實例。 這些對象有一個 eventEmitter.on() 函數,用于將一個或多個函數綁定到命名事件上。。
當 EventEmitter 對象觸發一個事件時&#x
總結
以上是生活随笔為你收集整理的(八)nodejs循序渐进-事件驱动(进阶篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PaperNotes(16)-图神经网络
- 下一篇: (六)nodejs循序渐进-数据流和文件