Angular
Node.js ตัวอย่างการใช้ EventEmitter
มาดูตัวอย่าง nodejs ตัวอย่างการใช้ eventemitter
EventEmitter build in อยู่ใน Node.js ดังนั้นเราสามารถเรียกใช้ได้เลย
ไปดูตัวอย่างแบบง่าย ๆ การใช้ EventEmitter ใน event-driven กัน
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Attach listener to an event
myEmitter.on('event', () => {
console.log('Event has occurred!');
});
// Emit the event
myEmitter.emit('event');
// Output: "Event has occurred!"
จากตัวอย่างเราสร้าง class ใหม่ที่ extends EventEmitter class จากนั้นเราก็สร้าง instance ของ class ขึ้นมา จากนั้นเราจะ listener โดยใช้ event โดยใช้ method on
สุดท้ายเราจะ emit event โดยใช้ฟังก์ชัน emit มันจะไป trigger listener
เราสามารถส่งผ่าน data ไปยังผู้ที่ listener โดยส่งผ่าน parameter ใน method emit ตามตัวอย่าง
myEmitter.on('event', (data) => {
console.log(`Event has occurred with data: ${data}`);
});
// Emit the event
myEmitter.emit('event', {'name':'John'});
// Output: "Event has occurred with data: {'name':'John'}"
เราสามารถลบ listener ได้โดยใช้คำสั่ง removeListener ตามตัวอย่าง
const eventCallback = () => {
console.log('Event has occurred!');
}
myEmitter.on('event', eventCallback);
myEmitter.removeListener('event', eventCallback);