คำอธิบายวิธี:
ลงทะเบียนผู้ฟังสำหรับเหตุการณ์ที่ระบุ
ไวยากรณ์:
การคัดลอกรหัสมีดังนี้:
emitter.on (เหตุการณ์ผู้ฟัง)
emitter.addlistener (เหตุการณ์ผู้ฟัง)
รับพารามิเตอร์:
ประเภทเหตุการณ์ (สตริง) ประเภทเหตุการณ์
ฟัง (ฟังก์ชั่น) ฟังก์ชั่นการโทรกลับเมื่อเหตุการณ์ถูกเรียกใช้
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
Server.on ('การเชื่อมต่อ', ฟังก์ชั่น (สตรีม) {
console.log ('มีคนเชื่อมต่อ!');
-
ซอร์สโค้ด:
การคัดลอกรหัสมีดังนี้:
Eventemitter.prototype.addListener = function (type, Listener) {
var m;
if (! util.isfunction (ผู้ฟัง))
Throw TypeError ('ผู้ฟังต้องเป็นฟังก์ชั่น');
if (! this._events)
this._events = {};
// เพื่อหลีกเลี่ยงการเรียกซ้ำในกรณีที่ประเภท === "newlistener"! ก่อน
// เพิ่มลงในผู้ฟังก่อนอื่นปล่อย "newlistener"
if (this._events.newlistener)
this.emit ('newlistener', พิมพ์,
util.isfunction (listener.listener)?
Listener.Listener: ผู้ฟัง);
ถ้า (! this._events [type])
// เพิ่มประสิทธิภาพกรณีของผู้ฟังหนึ่งคน ไม่ต้องการวัตถุอาร์เรย์พิเศษ
this._events [type] = ผู้ฟัง;
อื่นถ้า (util.isobject (this._events [type])))
// ถ้าเรามีอาร์เรย์อยู่แล้วเพียงแค่ผนวก
this._events [type] .push (ผู้ฟัง);
อื่น
// การเพิ่มองค์ประกอบที่สองจำเป็นต้องเปลี่ยนเป็นอาร์เรย์
this._events [type] = [this._events [type], ผู้ฟัง];
// ตรวจสอบการรั่วไหลของผู้ฟัง
if (util.isobject (this._events [type]) &&! this._events [type] .warned) {
var m;
if (! util.isundefined (this._maxlisteners)) {
m = this._MaxListeners;
} อื่น {
M = Eventemitter.defaultMaxListeners;
-
if (m && m> 0 && this._events [type] .length> m) {
this._events [type] .warned = true;
console.error ('(โหนด) คำเตือน: หน่วยความจำเหตุการณ์ที่เป็นไปได้' +
ตรวจพบการรั่วไหล เพิ่มผู้ฟัง -
'ใช้ emitter.setMaxListeners () เพื่อเพิ่มขีด จำกัด '
this._events [type] .length);
console.trace ();
-
-
คืนสิ่งนี้;
-