网站地图    收藏   

主页 > 前端 > nodejs >

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

来源:未知    时间:2014-12-14 20:53 作者:xxadmin 阅读:

[导读] 方法说明: 移除所有监听器,如果指定event,则将移除指定事件的所有监听器。 语法: 复制代码 代码如下: emitter.removeAllListeners([event]) 接收参数: event 事件类型,支持多个 例子: 复...

方法说明:

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

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论