class EventBus {
constructor() {
this.events = new Map();
}
on(event, callback) {
if (!this.events.has(event)) {
this.events.set(event, []);
}
this.events.get(event).push(callback);
}
emit(event, data) {
if (this.events.has(event)) {
this.events.get(event).forEach(callback => callback(data));
}
}
}
const bus = new EventBus();
bus.on('user', name => console.log(`Hello ${name}`));
bus.on('user', name => console.log(`Welcome ${name}`));
bus.emit('user', 'Sarah');
bus.emit('admin', 'John'); Post #2585
4.04K
CHALLENGE
- ❤ 6
- 🤔 3
- 👍 1
- 🤣 1