From b3a9c8ee94c5606f162c4c1691a7c02198fbfd84 Mon Sep 17 00:00:00 2001 From: abhinav-grd Date: Sun, 12 Sep 2021 15:56:16 +0530 Subject: [PATCH 1/2] improves queueProcessor --- src/services/upload/queueProcessor.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/upload/queueProcessor.ts b/src/services/upload/queueProcessor.ts index b825b8f21..ae6ec39b1 100644 --- a/src/services/upload/queueProcessor.ts +++ b/src/services/upload/queueProcessor.ts @@ -5,7 +5,7 @@ interface RequestQueueItem { canceller: { exec: () => void }; } -interface RequestCanceller { +export interface RequestCanceller { exec: () => void; } @@ -16,7 +16,9 @@ export default class QueueProcessor { constructor(private maxParallelProcesses: number) {} - public queueUpRequest(request: () => Promise) { + public queueUpRequest( + request: (canceller?: RequestCanceller) => Promise + ) { const isCanceled = { status: false }; const canceller: RequestCanceller = { exec: () => { From e34a8e8b9245daa11eed07137f85c74355b3221b Mon Sep 17 00:00:00 2001 From: abhinav-grd Date: Sun, 12 Sep 2021 16:00:59 +0530 Subject: [PATCH 2/2] remove processQueue recursive call as we are processing the queue in a loop left when making the change --- src/services/upload/queueProcessor.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/upload/queueProcessor.ts b/src/services/upload/queueProcessor.ts index ae6ec39b1..470659f6b 100644 --- a/src/services/upload/queueProcessor.ts +++ b/src/services/upload/queueProcessor.ts @@ -50,7 +50,7 @@ export default class QueueProcessor { public async processQueue() { while (this.requestQueue.length > 0) { const queueItem = this.requestQueue.pop(); - let response: string; + let response = null; if (queueItem.isCanceled.status) { response = null; @@ -62,7 +62,6 @@ export default class QueueProcessor { } } queueItem.callback(response); - await this.processQueue(); } } }