UNPKG

@pushrocks/smartpromise

Version:

simple promises and Deferred constructs

22 lines 1.76 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); } addPromise(promiseArg) { this.accumulatedPromises.push(promiseArg); } } export const cumulativeDefer = () => { return new CumulativeDeferred(); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm9taXNlLmNsYXNzZXMuY3VtdWxhdGl2ZWRlZmVycmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRwcm9taXNlLmNsYXNzZXMuY3VtdWxhdGl2ZWRlZmVycmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSlEsd0JBQW1CLEdBQW1CLEVBQUUsQ0FBQztRQUN6QyxhQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBR3JDLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZELE1BQU0sYUFBYSxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU0sVUFBVSxDQUFDLFVBQXdCO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBR0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNsQyxPQUFPLElBQUksa0JBQWtCLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUEifQ==