emitter.emit()
إطلاق حدث emitter.emit()
emitter.emit() تستدعي بشكل متزامن كل المستمعين المسجَّلين على حدث معيّن، وتمرّر لهم أي معاملات إضافية.
emitter.emit(eventName, ...args) تستدعي كل دوال الاستماع المسجَّلة عبر on لنفس eventName، بنفس ترتيب تسجيلها، وتمرّر لها args كمعاملات. القيمة المُرجَعة من كل مستمع تُهمَل تمامًا. تُرجع emit نفسها true إن وُجد مستمع واحد على الأقل نُودي، و false إن لم يوجد أي مستمع.
حدث 'error' له معاملة خاصة: إن أُطلق ولا يوجد له أي مستمع مسجَّل، يرمي Node الخطأ ويطبع تتبّع المكدّس ويوقف العملية بالكامل (crash) — هذا السلوك خاص بـ 'error' فقط دون بقية الأحداث.
الصياغة
emitter.emit(eventName[, ...args])
📄 مثال
const { EventEmitter } = require('node:events');
const bus = new EventEmitter();
// لازم مستمع لحدث error دائمًا لتفادي توقّف العملية
bus.on('error', (err) => {
console.error('حدث خطأ:', err.message);
});
const hadListeners = bus.emit('error', new Error('فشل الاتصال'));
console.log(hadListeners); // trueأهم المعاملات
| المعامل | الوظيفة |
|---|---|
| eventName | اسم الحدث المراد إطلاقه |
| ...args | معاملات تُمرَّر لكل دالة استماع مسجّلة |
💡 نصائح عملية
- emit تُرجع true إذا وُجد مستمع واحد على الأقل نُودي، و false إذا لم يوجد أي مستمع لهذا الحدث
⚠️ أخطاء شائعة
- إطلاق حدث 'error' بدون تسجيل أي مستمع له يوقف العملية بالكامل — سلوك خاص بحدث error فقط ولا يحدث مع أي حدث آخر
- توقّع أن القيمة التي يُرجعها المستمع تصل لمن استدعى emit — القيم المُرجَعة من المستمعين تُهمَل دائمًا
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار NODEJS الكامل بالعربي.