@downpourdigital/dispatcher
Version:
Async event dispatcher.
10 lines (9 loc) • 518 B
TypeScript
import type { Observer } from './Subscription';
import Subscription from './Subscription';
import PassiveSubscription, { PassiveObserver } from './PassiveSubscription';
export default class Subscribable<PayloadType> {
protected listeners: Subscription<PayloadType>[];
subscribe(observer: Observer<PayloadType>): Subscription<PayloadType>;
subscribePassive(observer: PassiveObserver<PayloadType>): PassiveSubscription<PayloadType>;
unsubscribe(subscription: Subscription<PayloadType>): void;
}