node.js中的events.emitter.removeAllListeners方法使用说明
node.js中的events.emitter.removeAllListeners方法使用说明
发布时间:2016-12-30 来源:查字典编辑
摘要:方法说明:移除所有监听器,如果指定event,则将移除指定事件的所有监听器。语法:复制代码代码如下:emitter.removeAllLis...

方法说明:

移除所有监听器,如果指定event,则将移除指定事件的所有监听器。

语法:

复制代码 代码如下:

emitter.removeAllListeners([event])

接收参数:

event 事件类型,支持多个

例子:

复制代码 代码如下:

//移除所有监听器

emitter.removeAllListeners()

//移除指定event的所有监听器

emitter.removeAllListeners('data')

源码:

复制代码 代码如下:

EventEmitter.prototype.removeAllListeners = function(type) {

var key, listeners;

if (!this._events)

return this;

// not listening for removeListener, no need to emit

if (!this._events.removeListener) {

if (arguments.length === 0)

this._events = {};

else if (this._events[type])

delete this._events[type];

return this;

}

// emit removeListener for all listeners on all events

if (arguments.length === 0) {

for (key in this._events) {

if (key === 'removeListener') continue;

this.removeAllListeners(key);

}

this.removeAllListeners('removeListener');

this._events = {};

return this;

}

listeners = this._events[type];

if (util.isFunction(listeners)) {

this.removeListener(type, listeners);

} else {

// LIFO order

while (listeners.length)

this.removeListener(type, listeners[listeners.length - 1]);

}

delete this._events[type];

return this;

};

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类