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
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());
|
|
}
|
|
}
|
|
}
|