From e413c956987ee29515716ae5870de158940ae0eb Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Tue, 14 May 2019 13:42:33 +0200 Subject: [PATCH] MOBILE-2851 core: Fix promise never finished when retry request --- src/classes/site.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/classes/site.ts b/src/classes/site.ts index ec988b24b..5331b38a1 100644 --- a/src/classes/site.ts +++ b/src/classes/site.ts @@ -794,6 +794,17 @@ export class CoreSite { request.deferred.reject = reject; }); + return this.enqueueRequest(request); + } + + /** + * Adds a request to the queue. + * + * @param {RequestQueueItem} request The request to enqueue. + * @returns {Promise} Promise resolved with the response when the WS is called. + */ + protected enqueueRequest(request: RequestQueueItem): Promise { + this.requestQueue.push(request); if (this.requestQueue.length >= CoreSite.REQUEST_QUEUE_LIMIT) { @@ -875,7 +886,7 @@ export class CoreSite { if (!response) { // Request not executed, enqueue again. - this.callOrEnqueueRequest(request.method, request.data, request.preSets, request.wsPreSets); + this.enqueueRequest(request); } else if (response.error) { request.deferred.reject(this.textUtils.parseJSON(response.exception)); } else {