UNPKG

@push.rocks/smartpromise

Version:

A TypeScript library for managing promises and Deferred constructs, simplifying asynchronous programming.

27 lines 2.05 kB
import { defer } from "./smartpromise.classes.deferred.js"; export class CumulativeDeferred { constructor() { this.accumulatedPromises = []; this.deferred = defer(); this.promise = this.deferred.promise; setTimeout(async () => { while (this.accumulatedPromises.length > 0) { const poppedPromise = this.accumulatedPromises.shift(); await poppedPromise; } this.deferred.resolve(); }, 0); } subDefer() { const done = defer(); this.addPromise(done.promise); return done; } addPromise(promiseArg) { this.accumulatedPromises.push(promiseArg); } } export const cumulativeDefer = () => { return new CumulativeDeferred(); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm9taXNlLmNsYXNzZXMuY3VtdWxhdGl2ZWRlZmVycmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRwcm9taXNlLmNsYXNzZXMuY3VtdWxhdGl2ZWRlZmVycmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSlEsd0JBQW1CLEdBQW1CLEVBQUUsQ0FBQztRQUN6QyxhQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBR3JDLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxhQUFhLENBQUM7WUFDdEIsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsVUFBd0I7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLE9BQU8sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQSJ9