@msom/reaction
Version:
@msom/reaction
43 lines • 1.32 kB
TypeScript
export interface IObserver {
notify(): void;
addReaction(reaction: Reaction): void;
removeReaction(reaction: Reaction): void;
}
export type $REACTION = {
tracking?: (ob: IObserver) => void;
reaction?: Reaction;
};
export type ReactionOption = {
tracker: () => void;
callback?: () => void;
scheduler?: "nextTick" | "nextFrame" | undefined | ((cb: () => void) => void);
};
export declare class Reaction {
private option;
private tracked;
private cancel?;
constructor(option: ReactionOption);
private _cancel;
/**
* 根据传入的delay选项,初始化微队列函数
* @returns
*/
updateNextTick(): void;
nextTick(cb: () => void): void;
track(): void;
notify(): void;
exec(): this;
private runcall;
disposer(): () => void;
destroy(): void;
addObserver(observer: IObserver): void;
removeObserver(observer: IObserver): void;
}
export declare function createReaction(tracker: () => void, callback: () => void, option?: {
scheduler?: ReactionOption["scheduler"];
}): Reaction;
export declare function createReaction(tracker: () => void, option?: {
scheduler?: ReactionOption["scheduler"];
}): Reaction;
export declare function withoutTrack<T>(callback: () => T): T;
//# sourceMappingURL=index.d.ts.map