UNPKG

cwait

Version:

Limit number of promises running in parallel

24 lines (23 loc) 1.25 kB
/** 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; }