From eb2fc666c226ff710516842ef9a66c1cf4886442 Mon Sep 17 00:00:00 2001 From: Avior Date: Thu, 11 Mar 2021 11:43:45 +0100 Subject: [PATCH] Added support to put multiple Promises in add Signed-off-by: Avior --- packages/queue/Queue.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/queue/Queue.ts b/packages/queue/Queue.ts index 40ba21e..892d9c0 100644 --- a/packages/queue/Queue.ts +++ b/packages/queue/Queue.ts @@ -20,18 +20,20 @@ export default class Queue { this.queue = len } - public async add(promise: Promise) { - while (this.queue >= this.maxQueueLength || this.isPaused) { - await new Promise((res) => setTimeout(res, this.timeToWait)) + public async add(...promises: Array>) { + for (const promise of promises) { + while (this.queue >= this.maxQueueLength || this.isPaused) { + await new Promise((res) => setTimeout(res, this.timeToWait)) + } + this.updateCurrentQueueLength(this.queue+1) + promise + .then(() => { + this.updateCurrentQueueLength(this.queue-1) + }).catch((e) => { + this.updateCurrentQueueLength(this.queue-1) + this.throwError = e + }) } - this.updateCurrentQueueLength(this.queue+1) - promise - .then(() => { - this.updateCurrentQueueLength(this.queue-1) - }).catch((e) => { - this.updateCurrentQueueLength(this.queue-1) - this.throwError = e - }) } public async waitEnd() {