node.js中的events.emitter.removeListener方法使用说明
node.js中的events.emitter.removeListener方法使用说明
发布时间:2016-12-30 来源:查字典编辑
摘要:方法说明:移除指定事件的某个监听器。语法:复制代码代码如下:emitter.removeListener(event,listener)接收...

方法说明:

移除指定事件的某个监听器。

语法:

复制代码 代码如下:

emitter.removeListener(event, listener)

接收参数:

event (string) 事件类型

listener (function) 已注册过的监听器

例子:

复制代码 代码如下:

var callback = function(stream) {

console.log('someone connected!');

};

server.on('connection', callback);

// ...

server.removeListener('connection', callback);

源码:

复制代码 代码如下:

// emits a 'removeListener' event iff the listener was removed

EventEmitter.prototype.removeListener = function(type, listener) {

var list, position, length, i;

if (!util.isFunction(listener))

throw TypeError('listener must be a function');

if (!this._events || !this._events[type])

return this;

list = this._events[type];

length = list.length;

position = -1;

if (list === listener ||

(util.isFunction(list.listener) && list.listener === listener)) {

delete this._events[type];

if (this._events.removeListener)

this.emit('removeListener', type, listener);

} else if (util.isObject(list)) {

for (i = length; i-- > 0;) {

if (list[i] === listener ||

(list[i].listener && list[i].listener === listener)) {

position = i;

break;

}

}

if (position < 0)

return this;

if (list.length === 1) {

list.length = 0;

delete this._events[type];

} else {

list.splice(position, 1);

}

if (this._events.removeListener)

this.emit('removeListener', type, listener);

}

return this;

};

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