fix: lazy load ai worker
This commit is contained in:
parent
7090117d8f
commit
7e3e47b4ba
@ -1,20 +1,26 @@
|
|||||||
import { bufToImageUrl, imageToArray } from ".";
|
import { bufToImageUrl, imageToArray } from ".";
|
||||||
|
|
||||||
const worker = new Worker("build/workers/ai-worker.js");
|
let worker;
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
|
||||||
let cb = {};
|
let cb = {};
|
||||||
|
|
||||||
worker.addEventListener("message", ev => {
|
|
||||||
if (ev.data.i in cb) {
|
|
||||||
cb[ev.data.i](ev.data.result);
|
|
||||||
delete cb[ev.data.i]
|
|
||||||
delete ev.data.i;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const analyze = (img: Image) => new Promise(async (res, rej) => {
|
const analyze = (img: Image) => new Promise(async (res, rej) => {
|
||||||
|
|
||||||
|
if (!worker) {
|
||||||
|
worker = new Worker("build/workers/ai-worker.js");
|
||||||
|
worker.addEventListener("message", ev => {
|
||||||
|
if (ev.data.i in cb) {
|
||||||
|
cb[ev.data.i](ev.data.result);
|
||||||
|
delete cb[ev.data.i]
|
||||||
|
delete ev.data.i;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
const _i = i;
|
const _i = i;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user