1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| class EventBus { constructor() { this.subscribers = {}; }
subscribe(event, callback) { if (!this.subscribers[event]) { this.subscribers[event] = []; } this.subscribers[event].push(callback); }
publish(event, data) { if (this.subscribers[event]) { this.subscribers[event].forEach(callback => callback(data)); } } }
const bus = new EventBus();
bus.subscribe('message', (data) => { console.log('Subscriber 1 received:', data); });
bus.subscribe('message', (data) => { console.log('Subscriber 2 received:', data); });
bus.publish('message', 'Hello Subscribers!');
|