Worker

创建 Worker 线程

const worker = new Worker("/worker.js");

数据发送与接收

// 主线程
worker.postMessage("Greeting from Main.js");

worker.addEventListener("message", (e) => {
  console.log(e.data);
});

// Worker 线程
self.postMessage("Greeting from Worker.js");

self.addEventListener("message", (e) => {
  console.log(e.data);
});

错误处理

// 主线程
worker.addEventListener("error", (err) => {
  console.log(err.message);
});

worker.addEventListener("messageerror", (err) => {
  console.log(err.message);
});

// Worker 线程
self.addEventListener("error", (err) => {
  console.log(err.message);
});

self.addEventListener("messageerror", (err) => {
  console.log(err.message);
});

关闭 Worker 线程

// 主线程
worker.terminate();

// Worker 线程
self.close();

Worker 线程引用其他 js 文件

importScripts("./utils.js");

ESModule 模式

const worker = new Worker("/worker.js", {
  type: "module",
});