وحدة أحداث العقدة

توفر وحدة الأحداث في Node.js فئة EventEmitter

الeventsتوفر لنا الوحدة النمطية فئة EventEmitter ، والتي تعد مفتاحًا للعمل مع الأحداث في Node.

لقد نشرت مقالاً كاملاً عن ذلك، لذلك سأقوم هنا بوصف واجهة برمجة التطبيقات بدون مزيد من الأمثلة حول كيفية استخدامها.

const EventEmitter = require('events')
const door = new EventEmitter()

يأكل مستمع الحدث طعام الكلاب الخاص به ويستخدم الأحداث التالية:

  • newListenerعند إضافة مستمع
  • removeListenerعندما تتم إزالة المستمع

فيما يلي وصف تفصيلي لأكثر الطرق فائدة:

emitter.addListener()

الاسم المستعار لـemitter.on().

emitter.emit()

يصدر حدثًا. يستدعي بشكل متزامن كل مستمع حدث بالترتيب الذي تم تسجيله به.

emitter.eventNames()

قم بإرجاع مصفوفة من السلاسل التي تمثل الأحداث المسجلة في EventListener الحالي:

door.eventNames()

emitter.getMaxListeners()

احصل على الحد الأقصى من المستمعين الذي يمكن للمرء إضافته إلى كائن EventListener ، والذي يتم تعيينه افتراضيًا على 10 ولكن يمكن زيادته أو خفضه باستخدامsetMaxListeners()

door.getMaxListeners()

emitter.listenerCount()

احصل على عدد المستمعين للحدث الذي تم تمريره كمعامل:

door.listenerCount('open')

emitter.listeners()

يحصل على مصفوفة من المستمعين للحدث الذي تم تمريره كمعامل:

door.listeners('open')

emitter.off()

الاسم المستعار لـemitter.removeListener() added in Node 10

emitter.on()

يضيف وظيفة رد الاتصال التي يتم استدعاؤها عند انبعاث حدث.

استعمال:

door.on('open', () => {
  console.log('Door was opened')
})

emitter.once()

يضيف وظيفة رد الاتصال التي يتم استدعاؤها عند إصدار حدث لأول مرة بعد تسجيل هذا سيتم استدعاء رد الاتصال هذا مرة واحدة فقط ، وليس مرة أخرى.

const EventEmitter = require('events')
const ee = new EventEmitter()

ee.once(‘my-event’, () => { //call callback function once })

emitter.prependListener()

عند إضافة مستمع باستخدامonأوaddListener، يتم إضافته أخيرًا في قائمة انتظار المستمعين ، واستدعاء الأخير استخدامprependListenerتمت إضافته واستدعائه قبل المستمعين الآخرين.

emitter.prependOnceListener()

عند إضافة مستمع باستخدامonce، يتم إضافته أخيرًا في قائمة انتظار المستمعين ، واستدعاء الأخير استخدامprependOnceListenerتمت إضافته واستدعائه قبل المستمعين الآخرين.

emitter.removeAllListeners()

يزيل جميع المستمعين لكائن باعث حدث يستمعون إلى حدث معين:

door.removeAllListeners('open')

emitter.removeListener()

إزالة مستمع معين. يمكنك القيام بذلك عن طريق حفظ وظيفة رد الاتصال في متغير ، عند إضافتها ، بحيث يمكنك الرجوع إليها لاحقًا:

const doSomething = () => {}
door.on('open', doSomething)
door.removeListener('open', doSomething)

emitter.setMaxListeners()

يضبط الحد الأقصى لعدد المستمعين الذي يمكن للمرء إضافته إلى كائن EventListener ، والذي يتم تعيينه افتراضيًا على 10 ولكن يمكن زيادته أو خفضه.

door.setMaxListeners(50)

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: