UNPKG

eventemitter-super

Version:

An event emitter/listener tool based on EventEmitter3.

187 lines (186 loc) 12.8 kB
import type EventEmitter from "./eventemitter3"; declare class EventEmitterSuper<Context extends any = any> extends EventEmitter { /** * 事件监听|event listener * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ on<T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: Context): () => void; /** * 事件监听|event listener * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ addListener<T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: Context): () => void; /** * 一次事件监听|one time event listener * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ once<T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: Context): () => void /** * 防抖监听器|debounce listener * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param wait 防抖最大等待时间(ms)|max wait time of debounce(ms) * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onDebounce<T extends string | symbol>(event: T, fn: (...args: any[]) => void, wait: number, context?: Context): () => void; /** * 节流监听器|throttle listener * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param wait 防抖最大等待时间(ms)|max wait time of throttle(ms) * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onThrottle<T extends string | symbol>(event: T, fn: (...args: any[]) => void, wait: number, context?: Context): () => void; /** * html事件监听器,返回一个销毁该监听器的函数|html event listener, return a function to destroy listener * @param htmlElement html元素|html element * @param type html事件类型|html event type * @param fn 触发事件|trigger event * @param opt html监听器的选项|html listener options * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onHtmlEvent<K extends keyof HTMLElementEventMap>(htmlElement: HTMLElement, type: K, fn: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, opt?: boolean | AddEventListenerOptions): () => void; /** * html事件监听器(防抖),返回一个销毁该监听器的函数|html event listener, return a function to destroy listener * @param htmlElement html元素|html element * @param type html事件类型|html event type * @param fn 触发事件|trigger event * @param wait 防抖最大等待时间(ms)|max wait time of debounce(ms) * @param opt html监听器的选项|html listener options * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onDebounceHtmlEvent<K extends keyof HTMLElementEventMap>(htmlElement: HTMLElement, type: K, fn: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, wait: number, opt?: boolean | AddEventListenerOptions): () => void; /** * html事件监听器(节流),返回一个销毁该监听器的函数|html event listener, return a function to destroy listener * @param htmlElement html元素|html element * @param type html事件类型|html event type * @param fn 触发事件|trigger event * @param wait 节流最大等待时间(ms)|max wait time of throttle(ms) * @param opt html监听器的选项|html listener options * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onThrottleHtmlEvent<K extends keyof HTMLElementEventMap>(htmlElement: HTMLElement, type: K, fn: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, wait: number, opt?: boolean | AddEventListenerOptions): () => void; /** * html事件监听器,返回一个销毁该监听器的函数|html event listener, return a function to destroy listener * @param htmlElement html元素|html element * @param type html事件类型|html event type * @param fn 触发事件|trigger event * @param opt html监听器的选项|html listener options * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ addHtmlListener<K extends keyof HTMLElementEventMap>(htmlElement: HTMLElement, type: K, fn: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, opt?: boolean | AddEventListenerOptions): () => void; /** * 一次监听多个事件,所有事件执行完成后执行回调函数|one time event listener for multiple events, execute callback function after all events are triggered * @param eventNames 事件名称数组|event name array * @param fn 回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onceEvents<T extends string | symbol>(eventNames: T[], fn: (...args: any[]) => void, context?: Context): () => void; /** * 一次监听多个事件,所有事件执行完成后执行回调函数|one time event listener for multiple events, execute callback function after all events are triggered * @param eventNames 事件名称数组|event name array * @param fn 回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ addOnceListeners<T extends string | symbol>(eventNames: T[], fn: (...args: any[]) => void, context?: Context): () => void; /** * 监听一个事件,在事件执行一定次数后执行回调函数|event listener for a certain number of executions, execute callback function after certain number of executions * @param event 事件名称|event name * @param fn 回调函数|callback function * @param execCount 事件执行的次数|number of executions of event * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onceByExecCount<T extends string | symbol>(event: T, fn: (...args: any[]) => void, execCount?: number, context?: Context): () => void; /** * 监听一个事件,设置一个最大时间(毫秒),在一段时间之后事件还未执行,自动执行该回调函数|event listener with a maximum time, execute callback function after certain time if event is not executed * @param event 事件名称|event name * @param fn 回调函数|callback function * @param maxTime 最大等待时间(毫秒)|maximum waiting time (milliseconds) * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onceWithMaxWaitTime<T extends string | symbol>(event: T, fn: (...args: any[]) => void, maxTime: number, context?: Context): () => void; /** * 一次监听多个事件,设置一个最大时间(毫秒),在一段时间之后监听的所有事件还未执行完成,自动执行该回调函数 * @param event 事件名称|event name * @param fn 回调函数|callback function * @param maxTime 最大等待时间(毫秒)|maximum waiting time (milliseconds) * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ addOnceListenersWithMaxWaitTime<T extends string | symbol>(eventNames: T[], fn: (...args: any[]) => void,maxTime: number, context?:Context): () => void /** * 一次监听多个事件,设置一个最大时间(毫秒),在一段时间之后监听的所有事件还未执行完成,自动执行该回调函数 * @param event 事件名称|event name * @param fn 回调函数|callback function * @param maxTime 最大等待时间(毫秒)|maximum waiting time (milliseconds) * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ onceEventsWithMaxWaitTime<T extends string | symbol>(eventNames: T[], fn: (...args: any[]) => void,maxTime: number, context?:Context): () => void /** * 一次事件监听|one time event listener * @param event 事件名称|event name * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个Promise对象,获取事件执行后发送的参数数组 */ oncePromise<T extends string | symbol>(event: T, context?: Context): Promise<any[]> onceEventsPromise<T extends string | symbol>(eventNames: T[], context?: Context): Promise<any[]> onceByExecCountPromise<T extends string | symbol>(event: T, execCount: number, context?: Context): Promise<any[]> onceWithMaxWaitTimePromise<T extends string | symbol>(event: T, maxTime: number, context?: Context): Promise<any[]> onceEventsWithMaxWaitTimePromise<T extends string | symbol>(eventNames: T[], maxTime: number, context?: Context): Promise<any[]> /** * 一次事件监听 * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ bindOnce<T extends string | symbol>(eventName: T, fn: (...args: any[]) => void, context?: Context): () => void; /** * 事件监听 * @param event 事件名称|event name * @param fn 事件执行的回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @returns 返回一个函数,调用该函数可以销毁监听器|return a function to destroy listener */ bind<T extends string | symbol>(eventName: T, fn: (...args: any[]) => void, context?: Context): () => void; /** * 事件发送 * @param eventName 事件名称|event name * @param args 回调函数执行时的参数|arguments of callback function */ fire<T extends string | symbol>(eventName: T, ...args: any[]): boolean; /** * 事件销毁 * @param eventName 事件名称|event name * @param fn 回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @param once 是否是一次监听|is once listener */ unbind<T extends string | symbol>(eventName: T, fn: (...args: any[]) => void, context?: Context, once?: boolean): this; /** * 事件销毁 * @param eventName 事件名称|event name * @param fn 回调函数|callback function * @param context 回调函数内执行的上下文|context of callback function * @param once 是否是一次监听|is once listener */ un<T extends string | symbol>(eventName: T, fn: (...args: any[]) => void, context?: Context, once?: boolean): this; } export { EventEmitterSuper }; export default EventEmitterSuper;