nodejs中EventEmitter
生活随笔
收集整理的這篇文章主要介紹了
nodejs中EventEmitter
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在模塊events中,定義了一個EventEmitter類,可以使用var EventEmitter = require('events');訪問它。基本上所有發送事件的對象都是繼承自EventEmitter。有基本屬性和方法如下。
- setMaxListeners(n)
設置事件的最大監視者數量 - getMaxListeners(n)
獲取事件的最大監視者數量 - on(event, listener)/addListener(event, listener)
為事件增添一個監視者 - once(event, listener)
為事件增添一個一次監視者 - removeListener(event, listener)
為事件刪除一個監視者,注意listener指向同一個事件監聽函數。 - removeAllListeners([event])
如果無參數,移除所有事件的監視者。如果參數為event,移除該事件的監視者。 - listenerCount(event)
獲取特定事件的監視者數量。 - listeners(event)
獲取特定事件的監聽者列表。 - _eventsCount
事件的數量
寫一個繼承EventEmitter的對象。使用 util.inherits() 來完成對象的繼承。
var EventEmitter = require('events'); var util = require('util');function MyStream() {EventEmitter.call(this); }util.inherits(MyStream, EventEmitter);MyStream.prototype.write = function (data){this.emit('write', data); }var stream = new MyStream();stream.on('write', function(data) {console.log(data); });stream.write('hello, world');再用ES6的class重寫一下繼承。
var EventEmitter = require('events');class MyStream extends EventEmitter {write(data) {this.emit('write', data);} }var stream = new MyStream(); stream.on('write', data => console.log(data)); stream.write('hello, world'); stream.write('hello, world'); stream.write('hello, world');轉載于:https://www.cnblogs.com/xianwang/p/5034656.html
總結
以上是生活随笔為你收集整理的nodejs中EventEmitter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Poj2420 A Star not a
- 下一篇: 三种ajax解析模式!