top-block-game-cocos-sdk/tgb/eventBus.ts

23 lines
515 B
TypeScript

// 声明类
export class EventBus {
private eventList: object;
constructor() {
//定义事件总线对象
this.eventList = {};
}
//监听,或者说是发布
on(eventName, fn) {
let eventItem = this.eventList[eventName];
eventItem ? eventItem.push(fn) : (this.eventList[eventName] = [fn]);
}
//触发,订阅
emit(eventName, ...arg) {
this.eventList[eventName] &&
this.eventList[eventName].forEach((fn) => {
fn(...arg);
});
}
}
export default EventBus;