node.js里的event模塊

在Node.js中饲握,很多對象都會發(fā)出事件膀跌。比如奠涌,fs.readStream打開文件時會發(fā)出一個事件。所有發(fā)出事件的對象都是events.EventEmitter的實例降狠,可以通過require("events");獲得event模塊对竣。
通常,事件名采用“駝峰式”命名方式榜配,但是否纬,并沒有嚴格規(guī)定。這只是推薦的命名方法蛋褥。
函數可以添加給對象临燃,對象發(fā)出事件時,對應函數就會被執(zhí)行烙心。這些函數被稱作監(jiān)聽器(listeners)膜廊。在監(jiān)聽器函數中,this引用的是它(指此監(jiān)聽器函數)添加到的EventEmitter對象淫茵。

添加監(jiān)聽器

為事件綁定事件處理程序爪瓜,可以使用addListener(event, listener)和on(event, listener),它們的作用是完全一樣的匙瘪。傳入的參數是事件(event)和處理函數(listener)铆铆。

//事件觸發(fā)模塊
var events=require("events");
var util = require("util");
//定義對象
function Dad() {

}
//實現(xiàn)原型的繼承
util.inherits(Dad,events);
var newDad = new Dad();
function test() {
    console.log("我是test方法");
}
function myfn() {
    console.log("我是myfn方法");
}

addListener 方法

newDad.addListener("lee",test);
newDad.addListener("lee",myfn);

on 方法

newDad.on("lee",test);// ------on:jq方法炬转,可監(jiān)控
newDad.on("lee",myfn);

設置監(jiān)聽器最大綁定數
emitter.setMaxListeners(n)可以設置同一事件的監(jiān)聽器最大綁定數,默認情況下算灸,超過10個就會警告提示扼劈,這能幫我們快速找到類存泄露的地方。顯然菲驴,不是所有的事件觸發(fā)器都限制在10個監(jiān)聽器荐吵,通過這個方法可以設置,如果設置為0就是無限制赊瞬。

newDad.setMaxListeners(2); //-------只能綁定兩個

once(event, listener)綁定的事件監(jiān)聽器只會執(zhí)行一次先煎,然后就會被刪除掉。

newDad.once("onceEmit",test);

解除單個事件綁定

//removeAllListeners("事件名稱"巧涧,事件) 移除指定事件名稱的對應事件
//removeAllListeners("事件名稱") 移除指定事件名稱的所有事件
//removeAllListeners() 移除所有綁定事件
 newDad.removeListener("lee",test) 

觸發(fā)事件 emit

newDad.emit("lee");
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末薯蝎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谤绳,更是在濱河造成了極大的恐慌占锯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缩筛,死亡現(xiàn)場離奇詭異消略,居然都是意外死亡,警方通過查閱死者的電腦和手機瞎抛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門艺演,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桐臊,你說我怎么就攤上這事胎撤。” “怎么了断凶?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵伤提,是天一觀的道長。 經常有香客問我懒浮,道長飘弧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任砚著,我火速辦了婚禮次伶,結果婚禮上,老公的妹妹穿的比我還像新娘稽穆。我一直安慰自己冠王,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布舌镶。 她就那樣靜靜地躺著柱彻,像睡著了一般豪娜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哟楷,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天瘤载,我揣著相機與錄音,去河邊找鬼卖擅。 笑死鸣奔,一個胖子當著我的面吹牛,可吹牛的內容都是我干的惩阶。 我是一名探鬼主播挎狸,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼断楷!你這毒婦竟也來了锨匆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冬筒,失蹤者是張志新(化名)和其女友劉穎恐锣,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體账千,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡侥蒙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了匀奏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡学搜,死狀恐怖娃善,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情瑞佩,我是刑警寧澤聚磺,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站炬丸,受9級特大地震影響瘫寝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜稠炬,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一焕阿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧首启,春花似錦暮屡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽准夷。三九已至,卻和暖如春莺掠,著一層夾襖步出監(jiān)牢的瞬間衫嵌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工彻秆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渐扮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓掖棉,卻偏偏與公主長得像墓律,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幔亥,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • Node.js EventEmitter Node.js 所有的異步 I/O 操作在完成時都會發(fā)送一個事件到事件隊...
    FTOLsXD閱讀 315評論 1 2
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,338評論 0 6
  • 毫無疑問耻讽,nodeJS改變了整個前端開發(fā)生態(tài)。本文通過分析nodeJS當中events模塊源碼帕棉,由淺入深针肥,動手實現(xiàn)...
    LucasHC閱讀 1,866評論 3 17
  • Node.js EventEmitter Node.js 所有的異步 I/O 操作在完成時都會發(fā)送一個事件到事件隊...
    yyshang閱讀 246評論 0 1
  • 我是一個怕麻煩的人,也怕打擾別人香伴。所以會給人以距離感慰枕。不知道這是怎樣造成的,但此刻我想要作不一樣的自己即纲。 打開自己...
    Mooooore閱讀 152評論 0 0