diff --git a/view/src/helpers/_pixelWorker.ts b/view/src/helpers/_pixelWorker.ts index 17f4b7d..0d4664d 100644 --- a/view/src/helpers/_pixelWorker.ts +++ b/view/src/helpers/_pixelWorker.ts @@ -1,16 +1,18 @@ -const worker = new Worker("build/workers/pixel-worker.js"); - +let worker; let i = 0; - let cb = {}; -worker.addEventListener("message", ev => { - if (ev.data.i in cb) { - cb[ev.data.i](ev.data.result); - } -}) - export default (msg: any): Promise => new Promise((res, rej) => { + + if (!worker) { + worker = new Worker("build/workers/pixel-worker.js"); + worker.addEventListener("message", ev => { + if (ev.data.i in cb) { + cb[ev.data.i](ev.data.result); + } + }) + } + i++; const _i = i; worker.postMessage({ i: _i, ...msg });