UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

64 lines (63 loc) 1.78 kB
/** * 发布订阅模块 * 用于组件/服务间的事件通信 */ type EventCallback = (...args: any[]) => void; interface EventSubscription { unsubscribe: () => void; } declare class PubSub { private events; /** * 订阅事件 * @param event 事件名称 * @param callback 回调函数 * @returns 订阅对象,可用于取消订阅 */ subscribe(event: string, callback: EventCallback): EventSubscription; /** * 取消订阅事件 * @param event 事件名称 * @param callback 回调函数 * @returns 是否成功取消订阅 */ unsubscribe(event: string, callback: EventCallback): boolean; /** * 发布事件 * @param event 事件名称 * @param args 事件参数 */ publish(event: string, ...args: any[]): void; /** * 移除某个事件的所有订阅 * @param event 事件名称 * @returns 是否成功移除 */ clearEvent(event: string): boolean; /** * 移除所有事件订阅 */ clearAllEvents(): void; /** * 获取事件的订阅数量 * @param event 事件名称 * @returns 订阅数量 */ getSubscriberCount(event: string): number; /** * 检查事件是否有订阅者 * @param event 事件名称 * @returns 是否有订阅者 */ hasSubscribers(event: string): boolean; /** * 一次性订阅事件,事件触发后自动取消订阅 * @param event 事件名称 * @param callback 回调函数 * @returns 订阅对象,可用于取消订阅 */ once(event: string, callback: EventCallback): EventSubscription; } declare const pubsub: PubSub; export default pubsub; export { PubSub, type EventCallback, type EventSubscription };