Penerangan kaedah:
Daftarkan pendengar untuk acara yang ditentukan.
Tatabahasa:
emitter.on(acara, pendengar)
emitter.addListener(acara, pendengar)
Terima parameter:
acara (rentetan) Jenis acara
pendengar (fungsi) Fungsi panggil balik apabila peristiwa dicetuskan
Contoh:
server.on('sambungan', fungsi (strim) {
console.log('seseorang disambungkan!');
});
Kod sumber:
EventEmitter.prototype.addListener = fungsi(jenis, pendengar) {
var m;
jika (!util.isFunction(pendengar))
Throw TypeError('pendengar mestilah fungsi');
jika (!ini._acara)
This._events = {};
// Untuk mengelakkan pengulangan dalam kes yang menaip === "newListener" Sebelum
// menambahkannya pada pendengar, mula-mula keluarkan "newListener".
jika (this._events.newListener)
This.emit('newListener', type,
util.isFunction(pendengar.pendengar) ?
Pendengar.pendengar : pendengar);
jika (!this._events[type])
// Optimumkan kes satu pendengar. Tidak memerlukan objek tatasusunan tambahan.
This._events[type] = pendengar;
else if (util.isObject(this._events[type]))
// Jika kita sudah mempunyai tatasusunan, tambah sahaja.
This._events[type].push(pendengar);
lain
// Menambah elemen kedua, perlu menukar kepada tatasusunan.
This._events[type] = [this._events[type], listener];
// Semak kebocoran pendengar
jika (util.isObject(this._events[type]) && !this._events[type].warning) {
var m;
Jika (!util.isUndefined(this._maxListeners)) {
m = ini._maxListeners;
} lain {
m = EventEmitter.defaultMaxListeners;
}
Jika (m && m > 0 && this._events[type].panjang > m) {
This._events[type].warning = benar;
console.error('(nod) amaran: kemungkinan memori EventEmitter '
'kebocoran dikesan. %d pendengar ditambahkan
'Gunakan emitter.setMaxListeners() untuk meningkatkan had.',
This._events[type].length);
console.trace();
}
}
pulangkan ini;
};