UNPKG

core-cde

Version:

47 lines (46 loc) 2.04 kB
export declare type EventHandler<E> = (event: E) => void; /** * Событие, на которое можно подписаться. */ export interface Event<E> { /** * Ригистрирует новый обработчик у диспетчера. Каждый раз, * когда событие отправляется, обработчик получает уведомление. * @param handler Обработчик для регистрации. */ register(caller: any, handler: EventHandler<E>): void; /** * Отписать обработчик от диспетчера. * @param handler Обработчик для удаления. */ unregister(caller: any, handler: EventHandler<E>): void; } /** * Диспетчер, который может передавать события подписчикам. */ export declare class EventDispatcher<E> implements Event<E> { /** * Обработчики, которые хотят получать уведомления о возникновении события. */ private _handlers; /** * Конструктор */ constructor(); /** * Ригистрирует новый обработчик у диспетчера. Каждый раз, * когда событие отправляется, обработчик получает уведомление. * @param handler Обработчик для регистрации. */ register(caller: any, handler: EventHandler<E>): void; /** * Отписать обработчик от диспетчера. * @param handler Обработчик для удаления. */ unregister(caller: any, handler: EventHandler<E>): void; /** * Рассылает событие всем подписчикам. * @param event Данные о произошедшем событии. */ dispatch(event: E): void; }