当前位置:Gxlcms > JavaScript > node.js中的events.emitter.removeAllListeners方法使用说明_node.js

node.js中的events.emitter.removeAllListeners方法使用说明_node.js

时间:2021-07-01 10:21:17 帮助过:91人阅读

方法说明:

移除所有监听器,如果指定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;
};

人气教程排行