首頁 > web前端 > js教程 > node.js中的events.emitter.removeAllListeners方法使用說明_node.js

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

WBOY
發布: 2016-05-16 16:27:42
原創
2282 人瀏覽過

方法說明:

移除所有監聽器,如果指定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.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板