UNPKG

dingtalk-jsapi

Version:

钉钉 模块化 多端统一 API

51 lines (50 loc) 1.53 kB
interface IEventData { namespace: string; eventName: string; data: any; } interface IEventDataCacheFlag { /** Mark is the cached data */ isCached: boolean; cacheTimeStamp?: number; } declare type IEmitEvent = IEventData & IEventDataCacheFlag; /** * 获取对应 namespace 的 Channel,如果不存在则会新建 * @param namespace * @returns Channel */ export declare const getChannel: (namespace: string) => Channel; /** * 释放对应 Channel,在其上注册的事件也会一并被释放 * @param namespace */ export declare const destroyChannel: (namespace: string) => void; /** * * @returns 所有 Channel 对应的 namespace 列表 */ export declare const getAllChannelNamespaces: () => string[]; interface IListenerOption { /** Mark whether use the cached data */ useCache: boolean; } export declare class Channel { private subscribedMethodsPromise; private unSubscribedMethodsPromise; private lastCacheMap; private namespace; private listenerMap; constructor(namespace: string); destroy(): void; subscribe(eventName: string, listener: (data: IEmitEvent) => void, options?: IListenerOption): void; unsubscribe(eventName: string, listener: (data: IEmitEvent) => void): void; publish(eventName: string, data: any, options?: { shouldUpdateCache?: boolean; }): Promise<any>; private publishCurrentInnerEvent; private trySubscribeEvent; private tryUnSubscribeEvent; private addDTChannelEventListener; } export {};