Events Module (Event Emitter)
Events Module: Event Emitter در Node.js 📡
Event Emitter برای event-driven programming در Node.js استفاده میشه. این یکی از مفاهیم کلیدی Node.js است!
استفاده از EventEmitter:
const EventEmitter = require('events');
// ساخت instance
const myEmitter = new EventEmitter();
// Listening به event
myEmitter.on('greet', (name) => {
console.log('Hello, ' + name + '!');
});
// Emit کردن event
myEmitter.emit('greet', 'John'); // Hello, John!
ساخت Custom Event Emitter:
const EventEmitter = require('events');
class MyClass extends EventEmitter {
doSomething() {
// انجام کار
console.log('Doing something...');
// Emit event
this.emit('done', { result: 'success' });
}
}
const myObject = new MyClass();
// Listening
myObject.on('done', (data) => {
console.log('Done!', data);
});
myObject.doSomething();
Event Methods:
const EventEmitter = require('events');
const emitter = new EventEmitter();
// on - listening به event
emitter.on('event', () => console.log('Event fired!'));
// once - فقط یک بار
emitter.once('event', () => console.log('Only once!'));
// emit - فراخوانی event
emitter.emit('event');
emitter.emit('event'); // فقط 'Event fired!' چاپ میشه
// removeListener - حذف listener
emitter.removeListener('event', handler);
// removeAllListeners - حذف همه listeners
emitter.removeAllListeners('event');
💡 نکته: Event Emitter برای decoupling و event-driven architecture عالیه!
✅ یاد گرفتید: Event Emitter برای event-driven programming ضروریه!
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تمرین: Event Emitter
Easy
سوال تمرین
🎯 تمرین: ساخت Event Emitter سفارشی
یک Event Emitter بسازید که وقتی event 'data' فراخوانی میشه، داده رو log کنه.
پاسخ تمرین
JAVASCRIPT
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const emitter = new MyEmitter();
emitter.on('data', (data) => {
console.log('Received:', data);
});
emitter.emit('data', 'Hello');
// Output: Received: Hello
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.