UNPKG

@shockpkg/core

Version:
57 lines (56 loc) 1.2 kB
/** * Event dispatcher. * * @param context Context object. */ export declare class Dispatcher<T> extends Object { /** * Event context. */ protected readonly _context: any; /** * Event handlers. */ protected readonly _handlers: Set<(event: T) => any>; constructor(context: any); /** * Add listener. * * @param handler Event handler. */ on(handler: (event: T) => any): void; /** * Remove listener. * * @param handler Event handler. */ off(handler: (event: T) => any): void; /** * Trigger, sync. * * @param handler Event data. * @return Handler count. */ triggerSync(event: T): number; /** * Trigger, async. * * @param handler Event data. * @return Handler count. */ triggerAsync(event: T): Promise<number>; /** * Trigger or throw, sync. * * @param handler Event data. * @return Handler count. */ triggerOrThrowSync(event: T): void; /** * Trigger or throw, sync. * * @param handler Event data. * @return Handler count. */ triggerOrThrowAsync(event: T): Promise<void>; }