diff --git a/src/queue/index.ts b/src/queue/index.ts index f35a382..6ea810f 100644 --- a/src/queue/index.ts +++ b/src/queue/index.ts @@ -3,4 +3,22 @@ import PubSub from "pubsub-js" export const KNOWLEDGE_QUEUE = Symbol("queue") -PubSub.subscribe(KNOWLEDGE_QUEUE, processKnowledge) +let isProcessing = false + +PubSub.subscribe(KNOWLEDGE_QUEUE, async (msg, id) => { + try { + isProcessing = true + await processKnowledge(msg, id) + isProcessing = false + } catch (error) { + console.error(error) + isProcessing = false + } +}) + +window.addEventListener("beforeunload", (event) => { + if (isProcessing) { + event.preventDefault() + event.returnValue = "" + } +})