vite版本
1"vite": "^4.0.0",
默认导入worker为报404
1
2const worker = new Worker(new URL('./worker.js', import.meta.url))
3
4import MyWorker from './worker.js?worker';
5const worker = new MyWorker();
MyWorker文件代码
1const ctx: Worker = self as any;
2
3
4
5ctx.onmessage = (res) => {
6 if (res.data.type === 'ready') {
7 console.log('收到父线程消息');
8 ctx.postMessage('子线程准备完毕');
9 }
10};
11
12
13
14ctx.onerror = (err) => {
15 console.log('收集错误', err);
16};
17export default ctx;
使用MyWorker
1import myWorker from './worker.ts?worker';
2var homeWorker = new myWorker();
3homeWorker.postMessage({type: 'ready'});
4homeWorker.onmessage = (res) => {
5 console.log('home收到消息', res.data);
6};
7homeWorker.onerror = (err) => {
8 console.log('home收集到错误', err);
9
10 homeWorker.terminate();
11}
使用后控制台打印
个人笔记记录 2021 ~ 2025