UNPKG

@fbltd/async

Version:

Miscellaneous async utils

34 lines (33 loc) 956 B
import { IAllStreamConfig, IStreamIterator, IThisStreamConfig } from "./contracts.ts"; import { symAI } from "../constants.ts"; export declare class Dependency<T = any> { private _value; private reactionPromise; private abortPromise; private config; constructor(_value: T, config?: Partial<IAllStreamConfig<T>>); private _set; set value(v: T); get value(): T; get value_unsafe(): T; get done(): boolean; [symAI](this: Dependency<T>, thisStreamConfig?: IThisStreamConfig): IStreamIterator<T>; /** * One race of value change and dependency dispose * for all subscribers */ private _race; private getOrCreateRace; /** * Another subscribe for current race */ next(): Promise<{ done: true; value?: never; } | { done: boolean; readonly value: T; }>; get disposePromise(): Promise<void>; dispose(this: Dependency<T>): void; }