방법 설명:
모든 리스너를 제거합니다. 이벤트가 지정되면 지정된 이벤트의 모든 리스너가 제거됩니다.
문법:
Emitter.removeAllListeners([이벤트])
수신 매개변수:
이벤트 이벤트 유형, 다중 지원
예:
//모든 청취자 제거
이미터.removeAllListeners()
//지정된 이벤트에 대한 모든 리스너를 제거합니다
이미 터.removeAllListeners('데이터')
소스코드:
EventEmitter.prototype.removeAllListeners = 함수(유형) {
var 키, 청취자;
if (!this._events)
이것을 돌려주세요;
//removeListener를 수신하지 않으므로 내보낼 필요가 없습니다
if (!this._events.removeListener) {
If (arguments.length === 0)
This._events = {};
else if (this._events[유형])
삭제하세요._events[type];
이것을 돌려주세요;
}
// 모든 이벤트의 모든 리스너에 대해 RemoveListener를 내보냅니다
if (arguments.length === 0) {
for (this._events의 핵심) {
If (key === 'removeListener') 계속;
This.removeAllListeners(key);
}
This.removeAllListeners('removeListener');
This._events = {};
이것을 돌려주세요;
}
청취자 = this._events[type];
if (util.isFunction(리스너)) {
This.removeListener(유형, 청취자);
} 그 밖의 {
// LIFO 주문
동안(listeners.length)
This.removeListener(type, listeningrs[listeners.length - 1]);
}
삭제하세요._events[type];
이것을 돌려주세요;
};