nodejs最重要的模塊。提供了事件唯一的接口。
一. 事件發(fā)射器
- 概念
events木塊只提供了一個(gè)對(duì)象: events.EventsEmitter。
eventemitter 的核心就是事件輻射和事件監(jiān)聽器的封裝。 - EventEmitter(event,listener) 為指定事件注冊一個(gè)監(jiān)聽器,接受一個(gè)字符串 event 和一個(gè)回調(diào)函數(shù) listener。
- EventEmitter.emit(event,[arg1].[arg1],[arg2],...)發(fā)射event事件,傳遞若干可選參數(shù)到事件監(jiān)聽器的參數(shù)。
- EventEmitter.once(event,listener) 為指定事件注冊一個(gè)單次監(jiān)聽器這個(gè)監(jiān)聽器最多只會(huì)觸發(fā)一次。
- EventEmitter.removeListener (event,listener) 移除指定事件的監(jiān)聽器,listener必須是該事件已經(jīng)注冊過的監(jiān)聽器。
6.EvenetEmitter.removeAllListeners([event]) 移除所有事件的所有監(jiān)聽器。如果指定event,則移除指定事件的所有監(jiān)聽器。
二. error事件
EventEmitter定義了一個(gè)特殊事件error,當(dāng)我們遇到異常時(shí)會(huì)發(fā)射error事件。
當(dāng)error被發(fā)射時(shí),EventEmitter規(guī)定如果沒有響 應(yīng)的監(jiān)聽器,Node.js 會(huì)把它當(dāng)作異常,退出程序并打印調(diào)用棧。
一般要為會(huì)發(fā)射error 事件的對(duì)象設(shè)置監(jiān)聽器,避免遇到錯(cuò)誤后整個(gè)程序崩潰。