You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
424 B

export default class Bus {
constructor() {
this.listeners = new Map();
}
on(evtName, listener) {
const target = this.listeners.get(evtName) || [];
target.push(listener);
this.listeners.set(evtName, target);
}
emit(evtName) {
const listeners = this.listeners.get(evtName);
if (listeners) {
listeners.forEach((func) => func());
}
}
}