UNPKG

@image/packer

Version:
21 lines (17 loc) 474 B
import PromiseQueue from './PromiseQueue' export default class Queue { private queue: PromiseQueue; private remaining: number; constructor(concurrency: number) { this.queue = new PromiseQueue(concurrency); this.remaining = 0; } public add<T>(generator: () => Promise<T>): Promise<T> { this.remaining++; return this.queue.add(generator) .then(result => { this.remaining--; return result; }); } }