import { ${WorkerName}MainThreadWorker } from './main_thread/${workerName}_main_thread'; // 不需要一起打包的话则不需要引入这行 import { workerUrl } from 'fui-worker!./worker_thread/${workerName}_worker_thread'; export class ${WorkerName}WorkerHelper { public workers = new Map(); /** * 支持创建多个worker * @param key worker key */ public createMainThreadWorker(key: string = '') { if (this.workers.has(key)) { return this.workers.get(key); } const newWorker = BI.Workers.createWorker(${WorkerName}MainThreadWorker, { workerUrl: this.urlFormatter(workerUrl), workerName: BI.UUID(), }); this.workers.set(key, newWorker); return newWorker; } /** * 格式化worker url,比如补充一些环境信息到参数里 * @param url worker url */ private urlFormatter(url: string) { return url; } /** * 终止worker,不传key就全部终止 * @param key key */ public terminate(key?: string) { if (BI.isNull(key)) { this.workers.forEach(thread => { thread.terminate(); }); this.workers.clear(); return; } this.workers.get(key)?.terminate(); this.workers.delete(key); } } export const ${workerName}WorkerHelper = new ${WorkerName}WorkerHelper(); // 使用示例 const worker = ${workerName}WorkerHelper.createMainThreadWorker(); worker.testCommunication() .then(res => console.log(res));