وصف الطريقة:
تسجيل مستمع للحدث المحدد.
القواعد:
نسخة الكود كما يلي:
Emitter.on (حدث ، مستمع)
Emitter.addlistener (حدث ، مستمع)
تلقي المعلمات:
نوع الحدث (سلسلة) الحدث
المستمع (وظيفة) وظيفة رد الاتصال عند تشغيل الحدث
مثال:
نسخة الكود كما يلي:
server.on ('connection' ، function (Stream) {
console.log ('شخص متصل!') ؛
}) ؛
رمز المصدر:
نسخة الكود كما يلي:
eventemitter.prototype.addlistener = function (النوع ، المستمع) {
فار م ؛
if (! util.isfunction (مستمع))
رمي typeerror ("يجب أن يكون المستمع وظيفة") ؛
إذا (! this._events)
this._events = {} ؛
// لتجنب العودية في حالة هذا النوع === "NewListener"! قبل
// إضافته إلى المستمعين ، تنبعث أولاً من "NewListener".
if (this._events.newlistener)
this.emit ('NewListener' ، اكتب ،
util.ispunction (المستمع.
المستمع. Listener: مستمع) ؛
إذا (! this._events [type])
// تحسين حالة مستمع واحد. لا تحتاج إلى كائن صفيف إضافي.
this._events [type] = beasher ؛
آخر إذا (util.isobject (this._events [type]))
// إذا كان لدينا بالفعل صفيف ، فقط إلحاق.
this._events [type] .push (المستمع) ؛
آخر
// إضافة العنصر الثاني ، تحتاج إلى التغيير إلى صفيف.
this._events [type] = [this._events [type] ، leader] ؛
// تحقق من تسرب المستمع
if (util.isobject (this._events [type]) &&! this._events [type] .warned) {
فار م ؛
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 ('(Node) تحذير: ذاكرة EventEmitter ممكنة' +
اكتشاف التسرب. ٪ د المستمعين أضاف. ' +
"استخدم Emitter.setMaxListeners () لزيادة الحد." ،
this._events [type] .length) ؛
console.trace () ؛
}
}
إرجاع هذا ؛
} ؛