diff --git a/packages/loot-core/src/platform/client/fetch/index.browser.js b/packages/loot-core/src/platform/client/fetch/index.browser.js index 6b39f14a886ea27045e647f7979edbf965d09b3a..2cb04ba842278752f7c1e01737385fcf2fa4fa80 100644 --- a/packages/loot-core/src/platform/client/fetch/index.browser.js +++ b/packages/loot-core/src/platform/client/fetch/index.browser.js @@ -88,7 +88,7 @@ function connectWorker(worker, onOpen, onError) { // Send any messages that were queued while closed if (messageQueue.length > 0) { messageQueue.forEach(msg => worker.postMessage(msg)); - messageQueue = []; + messageQueue = null; } onOpen(); @@ -138,22 +138,17 @@ module.exports.send = function send(name, args, { catchErrors = false } = {}) { return new Promise((resolve, reject) => { uuid.v4().then(id => { replyHandlers.set(id, { resolve, reject }); - if (globalWorker) { - globalWorker.postMessage({ - id, - name, - args, - undoTag: undo.snapshot(), - catchErrors, - }); + let message = { + id, + name, + args, + undoTag: undo.snapshot(), + catchErrors, + }; + if (messageQueue) { + messageQueue.push(message); } else { - messageQueue.push({ - id, - name, - args, - undoTag: undo.snapshot(), - catchErrors, - }); + globalWorker.postMessage(message); } }); });