cwait
Version:
Limit number of promises running in parallel
24 lines (23 loc) • 1.25 kB
TypeScript
/** Promise class shim with basic functionality. @ignore internal use. */
export interface PromisyClass {
new <Result>(handler: (resolve: (result?: Result) => any, reject: (err?: any) => any) => any): PromiseLike<Result>;
resolve<Result>(result: Result | PromiseLike<Result>): PromiseLike<Result>;
reject(err: any): PromiseLike<any>;
}
/** Call func and return a promise for its result.
* Optionally call given resolve or reject handler when the promise settles. */
export declare function tryFinally<Result>(func: () => Result | PromiseLike<Result>, onFinish: () => void, Promise: PromisyClass, resolve?: (result: Result) => void, reject?: (err: any) => void): PromiseLike<Result>;
/** Task wraps a promise, delaying it until some resource gets less busy. */
export declare class Task<Result> {
private func;
private Promise;
stamp: number;
constructor(func: () => Result | PromiseLike<Result>, Promise: PromisyClass, stamp: number);
/** Wrap task result in a new promise so it can be resolved later. */
delay(): PromiseLike<Result>;
/** Start the task and call onFinish when done. */
resume(onFinish: () => void): PromiseLike<Result>;
private promise;
private resolve;
private reject;
}