23 lines
515 B
TypeScript
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;
|