Node模塊之Events模塊

第一 Events模塊概述node

Events模塊是Node對「發佈/訂閱」模式(publish/subscribe)的實現。一個對象經過這個模塊,向另外一個對象傳遞消息。函數

Node中的Event模塊僅僅提供了一個對象: EventEmitter, EventEmitter 的核心就是事件觸發與事件監聽器功能的封裝。ui

 

 

獲取EventEmitter對象code

//51testing
//引用模塊events, 點語法獲取到EventEmitter
varrequire'events'EventEmitter =().EventEmitter;
//初始化一個對象, 這個實例就是消息中心。
varnewemitter =EventEmitter;

第二 EventEmitter 實例對象的方法對象

2.1 emitter.on(eventName, listener), 監聽事件,若是觸發就調用回調函數事件

<String><Symbol>1. eventName|:事件名稱,後邊能夠跟上函數;
<Function>2. listener:回調函數;

2.2 emitter.emit(eventName[, ...args]), 根據eventName發送通知, 觸發事件, 第一個參數爲事件名稱, 其他的參數會依次傳入回調函數rem

2.3 emitter.once(eventName, listener), 相似on方法, 但回調函數只是行一次get

2.4 emitter.addListener(eventName, listener)相似於emitter.on(eventName, listener)回調函數

2.5 emitter.removeListener(eventName, listener), 移除監聽it

詳細見實例代碼:

var EventEmitter = require('events').EventEmitter;

var emitter = new EventEmitter();

 

//定義一個函數

var removeFun = function(){

    console.log('輸出結果');

}

//以fun名稱監聽removeFun

emitter.on('fun', removeFun);

//每一個30毫秒觸發一次回調函數

setInterval(function(){

    emitter.emit('fun');

}, 30);

//200毫秒之後觸發回調函數

setTimeout(function(){

    emitter.removeListener('fun', removeFun);

}, 200);

 

打印結果

$ node 5removeListener.js

輸出結果

輸出結果

輸出結果

輸出結果

輸出結果

#光標中止

相關文章
相關標籤/搜索