diff --git a/web/shared-worker/worker/shared-worker.js b/web/shared-worker/worker/shared-worker.js --- a/web/shared-worker/worker/shared-worker.js +++ b/web/shared-worker/worker/shared-worker.js @@ -290,6 +290,8 @@ return undefined; } +let currentlyProcessedMessage: ?Promise = null; + function connectHandler(event: SharedWorkerMessageEvent) { if (!event.ports.length) { return; @@ -307,18 +309,21 @@ }); } - try { - const result = await processAppRequest(message); - port.postMessage({ - id, - message: result, - }); - } catch (e) { - port.postMessage({ - id, - error: e.message, - }); - } + currentlyProcessedMessage = (async () => { + await currentlyProcessedMessage; + try { + const result = await processAppRequest(message); + port.postMessage({ + id, + message: result, + }); + } catch (e) { + port.postMessage({ + id, + error: e.message, + }); + } + })(); }; }