node.js의 이벤트.emitter.removeAllListeners 메소드 사용 설명

1701 단어
방법 설명:
모든 감청기를 제거하고 이벤트를 지정하면 지정한 이벤트의 모든 감청기를 제거합니다.
구문:
 
  
emitter.removeAllListeners([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;
};

좋은 웹페이지 즐겨찾기