UNPKG

com-tools

Version:

com-tools 提供了一些通用的工具函数;

36 lines 1.52 kB
/** * 决议 * 用来监听决议的值; * 当 决议时,会自动回调所有注册的事件,并回传决议的值;决议之后,再进行监听,监听事件会被立即被回调,并传递决议的值; * * 说明: * 功能类似 Promise,也可用 Promise 来更轻松地实现,但之所以不用 Promise ,是因为 Promise 的回调是异步的,但我想同步回调,即让回调在一个运行循环内完成; * 与 Promise 的区别是: * - then回调是在 决议时 和 决议之后 同步执行的;并会回传最新的 this.value * - 简单、轻量 * - 通过给 Decide 实例的 value 属性设置值 `decide.value = newValue` 自动触发决议; * - 即使决议之后,你也可以更改 value 的值,但不会再触发之添加的事件监听器; */ export declare class Decide<V = any> { protected _decided: boolean; get decided(): boolean; listeners: ((copy: V) => void)[]; protected _value: V; get value(): V; set value(newVal: V); /** * 执行回调,并且为了提高性能,会让决议之后的 then 方法直接执行回调 */ protected resolve(): void; /** * 监听决议,当被决议后,会自动回调 cb,并回传最新的 this.value * @param cb */ then(cb: (val: V) => void): void; /** * 创建一个直接决议的 Decide,并且决议的值是 value * @param value */ static resolve<V>(value: V): Decide<V>; } //# sourceMappingURL=Decide.d.ts.map