MOBILE-2851 core: Fix promise never finished when retry request

main
Dani Palou 2019-05-14 13:42:33 +02:00 committed by Pau Ferrer Ocaña
parent f20e34db5c
commit e413c95698
1 changed files with 12 additions and 1 deletions

View File

@ -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<any>} Promise resolved with the response when the WS is called.
*/
protected enqueueRequest(request: RequestQueueItem): Promise<any> {
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 {