@worker-tools/extendable-promise
Version:
A promise that can be delayed (extended) via repeated calls to waitUntil.
21 lines (20 loc) • 1.1 kB
TypeScript
export declare class ExtendablePromise<T = unknown> implements Promise<PromiseSettledResult<T>[]> {
#private;
constructor(f?: T | PromiseLike<T>);
waitUntil(f?: T | PromiseLike<T>): void;
/** @deprecated Name of this property might change */
get settled(): boolean;
then<TResult1 = PromiseSettledResult<T>[], TResult2 = never>(onfulfilled?: ((value: PromiseSettledResult<T>[]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<PromiseSettledResult<T>[] | TResult>;
finally(onfinally?: (() => void) | null): Promise<PromiseSettledResult<T>[]>;
readonly [Symbol.toStringTag] = "ExtendablePromise";
}
export interface PromiseFulfilledResult<T> {
status: "fulfilled";
value: T;
}
export interface PromiseRejectedResult {
status: "rejected";
reason: any;
}
export declare type PromiseSettledResult<T> = PromiseFulfilledResult<T> | PromiseRejectedResult;