Penerangan kaedah:
Alih keluar semua pendengar Jika acara ditentukan, semua pendengar untuk acara yang ditentukan akan dialih keluar.
Tatabahasa:
emitter.removeAllListeners([event])
Terima parameter:
jenis acara acara, menyokong berbilang
Contoh:
//Alih keluar semua pendengar
emitter.removeAllListeners()
//Alih keluar semua pendengar untuk acara yang ditentukan
emitter.removeAllListeners('data')
Kod sumber:
EventEmitter.prototype.removeAllListeners = fungsi(jenis) {
kunci var, pendengar;
jika (!ini._acara)
Kembalikan ini;
// tidak mendengar removeListener, tidak perlu mengeluarkan
jika (!this._events.removeListener) {
Jika (arguments.length === 0)
This._events = {};
else if (this._events[type])
Padam ini._events[type];
Kembalikan ini;
}
// emit removeListener untuk semua pendengar pada semua acara
if (arguments.length === 0) {
untuk (key in this._events) {
Jika (kunci === 'removeListener') teruskan;
This.removeAllListeners(key);
}
This.removeAllListeners('removeListener');
This._events = {};
Kembalikan ini;
}
pendengar = ini._events[type];
if (util.isFunction(pendengar)) {
This.removeListener(jenis, pendengar);
} lain {
// pesanan LIFO
manakala (pendengar.panjang)
This.removeListener(type, listeners[listeners.length - 1]);
}
Padam ini._events[type];
pulangkan ini;
};