3 type EventHandler = (args: any) => void;
6 events: Record<string, EventHandler[]>;
12 on(eventName: string, fn: EventHandler) {
13 if(!this.events[eventName]) {
14 this.events[eventName] = [];
17 this.events[eventName].push(fn);
20 emit(eventName: string, args: any) {
21 if(this.events[eventName]) {
22 this.events[eventName].forEach(fn => fn(args));