Nodejs的大部分核心API都是基于異步事件驅(qū)動(dòng)設(shè)計(jì)的,所有可以分發(fā)事件的對(duì)象都是EventEmitter類的實(shí)例。
大家知道,由于nodejs是單線程運(yùn)行的,所以nodejs需要借助事件輪詢,不斷去查詢事件隊(duì)列中的事件消息,然后執(zhí)行該事件對(duì)應(yīng)的回調(diào)函數(shù),有點(diǎn)類似windows的消息映射機(jī)制。至于更細(xì)的實(shí)現(xiàn)環(huán)節(jié),可以另行查找資料。
下面介紹EventEmitter的使用。
1、監(jiān)聽事件和分發(fā)事件
EventEmitter實(shí)例可以使用on或addListener監(jiān)聽事件,emit()方法分發(fā)事件,如下所示:
const events = require('events'), EventEmitter = events.EventEmitter, util = require('util'); function myEmiter(){ EventEmitter.call(this); }; util.inherits(myEmiter,EventEmitter);//繼承EventEmitter類 const myEmitterIns =
網(wǎng)友評(píng)論