توفر وحدة الأحداث في Node.js فئة EventEmitter
الevents
توفر لنا الوحدة النمطية فئة EventEmitter ، والتي تعد مفتاحًا للعمل مع الأحداث في Node.
لقد نشرت مقالاً كاملاً عن ذلك، لذلك سأقوم هنا بوصف واجهة برمجة التطبيقات بدون مزيد من الأمثلة حول كيفية استخدامها.
const EventEmitter = require('events')
const door = new EventEmitter()
يأكل مستمع الحدث طعام الكلاب الخاص به ويستخدم الأحداث التالية:
newListener
عند إضافة مستمعremoveListener
عندما تتم إزالة المستمع
فيما يلي وصف تفصيلي لأكثر الطرق فائدة:
emitter.addListener()
emitter.emit()
emitter.eventNames()
emitter.getMaxListeners()
emitter.listenerCount()
emitter.listeners()
emitter.off()
emitter.on()
emitter.once()
emitter.prependListener()
emitter.prependOnceListener()
emitter.removeAllListeners()
emitter.removeListener()
emitter.setMaxListeners()
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
المزيد من دروس العقدة:
- مقدمة لمدير الحزم npm
- مقدمة إلى Node.js
- طلبات HTTP باستخدام Axios
- أين تستضيف تطبيق Node.js
- تفاعل مع Google Analytics API باستخدام Node.js
- عداء حزمة العقدة npx
- دليل package.json
- أين تقوم npm بتثبيت الحزم؟
- كيفية تحديث Node.js
- كيفية استخدام أو تنفيذ حزمة مثبتة باستخدام npm
- ملف package-lock.json
- الإصدار الدلالي باستخدام npm
- هل يجب عليك تثبيت مجلد node_modules في Git؟
- قم بتحديث جميع تبعيات Node إلى أحدث إصدار لها
- تحليل JSON باستخدام Node.js
- ابحث عن الإصدار المثبت من حزمة npm
- تيارات Node.js
- قم بتثبيت إصدار أقدم من حزمة npm
- احصل على المجلد الحالي في Node
- كيفية تسجيل كائن في العقدة
- كشف الوظائف من ملف العقدة باستخدام الصادرات
- الاختلافات بين العقدة والمستعرض
- قم بإجراء طلب HTTP POST باستخدام Node
- احصل على بيانات نص طلب HTTP باستخدام Node
- عقدة المخازن
- تاريخ موجز لـ Node.js
- كيفية تثبيت Node.js
- ما مقدار JavaScript الذي تحتاج إلى معرفته لاستخدام Node؟
- كيفية استخدام Node.js REPL
- عقدة ، قبول الحجج من سطر الأوامر
- الإخراج إلى سطر الأوامر باستخدام العقدة
- اقبل الإدخال من سطر الأوامر في Node
- إلغاء تثبيت حزم npm باستخدام "npm uninstall"
- الحزم العالمية أو المحلية npm
- تبعيات npm و dev
- حلقة حدث Node.js
- فهم process.nextTick ()
- فهم setImmediate ()
- باعث حدث العقدة
- بناء خادم HTTP
- إجراء طلبات HTTP باستخدام Node
- الوحدة النمطية Node fs
- طلبات HTTP في العقدة باستخدام Axios
- قراءة الملفات باستخدام Node
- مسارات ملفات العقدة
- كتابة الملفات باستخدام Node
- احصائيات ملف العقدة
- العمل مع واصفات الملفات في Node
- العمل مع المجلدات في Node
- وحدة مسار العقدة
- وحدة Node http
- استخدام WebSockets مع Node.js
- أساسيات العمل مع MySQL و Node
- معالجة الخطأ في Node.js
- دليل الصلصال
- كيفية قراءة متغيرات البيئة من Node.js
- كيفية الخروج من برنامج Node.js
- وحدة Node os
- وحدة أحداث العقدة
- العقدة ، الفرق بين التطوير والإنتاج
- كيفية التحقق من وجود ملف في Node.js
- كيفية إنشاء ملف فارغ في Node.js
- كيفية إزالة ملف باستخدام Node.js
- كيفية الحصول على تاريخ آخر تحديث لملف باستخدام Node.js
- كيفية تحديد ما إذا كان التاريخ هو اليوم في JavaScript
- كيفية كتابة كائن JSON لملفه في Node.js
- لماذا يجب عليك استخدام Node.js في مشروعك التالي؟
- قم بتشغيل خادم الويب من أي مجلد
- كيفية استخدام MongoDB مع Node.js
- استخدم Chrome DevTools لتصحيح أخطاء تطبيق Node.js
- ما هو pnpm؟
- قائمة خيارات Node.js Runtime v8
- كيفية إصلاح خطأ "الوصول للكتابة مفقود" عند استخدام npm
- كيفية تمكين وحدات ES في Node.js
- كيفية إنتاج عملية فرعية باستخدام Node.js
- كيفية الحصول على كل من الجسم المحلل والجسم الخام في Express
- كيفية التعامل مع تحميلات الملفات في Node.js
- ما هي تبعيات الأقران في وحدة العقدة؟
- كيفية كتابة ملف CSV باستخدام Node.js
- كيفية قراءة ملف CSV باستخدام Node.js
- الوحدات الأساسية للعقدة
- زيادة أرقام المجلدات المتعددة مرة واحدة باستخدام Node.js
- كيفية طباعة لوحة الرسم على عنوان URL للبيانات
- كيفية إنشاء صورة وحفظها باستخدام Node.js و Canvas
- كيفية تنزيل صورة باستخدام Node.js
- كيفية إعادة تسمية الملفات بشكل جماعي في Node.js
- كيفية الحصول على أسماء جميع الملفات في مجلد في Node
- كيفية استخدام الوعود والانتظار مع وظائف Node.js المستندة إلى رد الاتصال
- كيفية اختبار حزمة npm محليًا
- كيفية التحقق من إصدار Node.js الحالي في وقت التشغيل
- كيفية استخدام Sequelize للتفاعل مع PostgreSQL
- اعرض صفحة HTML باستخدام Node.js
- كيفية حل خطأ "util.pump ليس دالة" في Node.js