import { IEvent } from './interface'; /** * 事件管理 */ export default class EventBus { /** * 主题事件的集合 * 每一个主题事件都会对应用户一个自定义的事件场景 * 当用户触发对应主题事件时(emit),对应已注册的事件会依次触发 */ private subject; /** * 订阅事件 * @param eventType 事件类型 * @param func 事件函数 * @param context 上下文 */ private on; /** * 订阅一次性事件 * @param eventType 事件类型 * @param func 事件函数 * @param context 上下文 */ private once; /** * 取消订阅事件 * @param eventType 事件类型 * @param func 事件函数 */ private off; /** * 发布事件 * @param eventType 事件类型 * @param params 载荷 */ private emit; /** * 创建不依赖 this 的事件对象 * @param eventType 事件类型 */ createEvent(): IEvent; }