/** 表示一个事件触发器,支持异步事件 */ export declare class EventEmitter { /** 所有已添加的事件处理函数 */ private _events?; /** * 添加一个事件处理函数 * @param eventName 要添加的事件名 * @param eventHandler 要添加的事件处理函数 * @example * const events = new EventEmitter() * events.on("error", data => console.log(data)) // 绑定 error 事件 * events.emit("error", "hello") // 触发 error 事件,输出 hello */ on(eventName: string, eventHandler: Function): this; /** * 添加一个只执行一次的事件处理函数 * @param eventName 要添加的事件名 * @param eventHandler 要添加的事件处理函数 * @example * const events = new EventEmitter() * events.once("error", data => console.log(data)) // 绑定 error 事件 * events.emit("error", "hello") // 触发 error 事件,输出 hello * events.emit("error", "hello") // 不触发事件 */ once(eventName: string, eventHandler: Function): this; /** * 删除一个或多个事件处理函数 * @param eventName 要删除的事件名,如果不传递此参数,则删除所有事件处理函数 * @param eventHandler 要删除的事件处理函数,如果不传递此参数,则删除指定事件的所有处理函数,如果同一个处理函数被添加多次,则只删除第一个 * @example * const events = new EventEmitter() * events.on("error", console.log) // 绑定 error 事件 * events.off("error", console.log) // 解绑 error 事件 * events.emit("error", "hello") // 触发 error 事件,不输出内容 */ off(eventName?: string, eventHandler?: Function): this; /** * 触发一个事件,执行已添加的所有事件处理函数 * @param eventName 要触发的事件名 * @param eventArgs 传递给事件处理函数的所有参数 * @returns 如果任一个事件处理函数返回 `false` 则返回 `false`,否则返回 `true` * @example * const events = new EventEmitter() * events.on("error", console.log) // 绑定 error 事件 * events.emit("error", "hello") // 触发 error 事件,输出 hello */ emit(eventName: string, ...eventArgs: any[]): Promise; }