vue-code-layout
Version:
A editor layout for Vue
59 lines (58 loc) • 1.65 kB
TypeScript
/**
* 简易浏览器端使用的 EventEmitter
*/
export declare class EventEmitter {
private listeners;
private anyHandler;
/**
* 监听事件
* @param event 事件名称
* @param cb 回调函数
* @returns
*/
on(event: string, cb: Function): this;
/**
* 监听全部事件。
* 此回调只能设置一个,设置后,其他通过 on 函数设置的监听器无效。
* @returns
*/
any(cb: (event: string, args: any[]) => any): this;
/**
* 触发事件
* @param event 事件名称
* @param a 事件参数
* @returns
*/
emit(event: string, ...a: any[]): this;
/**
* 触发异步事件,并获取返回值
* @param event 事件名称
* @param a 事件参数
* @returns 如果有多个事件监听器,则返回包含所有事件监听器返回值的数组。如果只有一个事件监听器,返回此监听器返回值。
*/
emitAsync(event: string, ...a: any[]): Promise<any>;
/**
* 取消监听事件
* @param event 事件名称
* @param listener 监听器,如果为空,则移除全部监听器
*/
off(event: string, listener?: Function | undefined): void;
/**
* 监听一次事件
* @param event 事件名
* @param listener 监听器
* @returns
*/
once(event: string, listener: Function): this;
/**
* 清除指定事件监听器
* @param event 事件名
*/
clear(event: string): void;
/**
* 获取事件监听器
* @param event
* @returns
*/
get(event: string): Function[] | undefined;
}