mirror of
https://github.com/arabine/open-story-teller.git
synced 2025-12-06 17:09:06 +01:00
28 lines
634 B
JavaScript
28 lines
634 B
JavaScript
class EventBus {
|
|
constructor() {
|
|
this.events = {};
|
|
this.id = Math.floor(Math.random() * 10000);
|
|
}
|
|
|
|
subscribe(event, listener) {
|
|
if (!this.events[event]) {
|
|
this.events[event] = [];
|
|
}
|
|
this.events[event].push(listener);
|
|
}
|
|
|
|
unsubscribe(event, listener) {
|
|
if (this.events[event]) {
|
|
this.events[event] = this.events[event].filter(l => l !== listener);
|
|
}
|
|
}
|
|
|
|
publish(event, data) {
|
|
if (this.events[event]) {
|
|
this.events[event].forEach(listener => listener(data));
|
|
}
|
|
}
|
|
}
|
|
|
|
export default new EventBus();
|