@fbltd/async
Version:
Miscellaneous async utils
34 lines (33 loc) • 956 B
TypeScript
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;
}