Bun Worker 线程 #

概述 #

Bun 支持 Web Workers API,可以进行多线程编程。

基本用法 #

主线程 #

typescript
// main.ts
const worker = new Worker(new URL("./worker.ts", import.meta.url));

worker.onmessage = (event) => {
  console.log("Received:", event.data);
};

worker.postMessage({ task: "compute", data: [1, 2, 3, 4, 5] });

Worker 线程 #

typescript
// worker.ts
self.onmessage = (event) => {
  const { task, data } = event.data;
  
  if (task === "compute") {
    const result = data.reduce((sum: number, n: number) => sum + n, 0);
    self.postMessage({ result });
  }
};

运行 #

bash
bun run main.ts

错误处理 #

typescript
const worker = new Worker("./worker.ts");

worker.onerror = (error) => {
  console.error("Worker error:", error);
};

worker.onmessageerror = (error) => {
  console.error("Message error:", error);
};

终止 Worker #

typescript
const worker = new Worker("./worker.ts");

// 终止 Worker
worker.terminate();

下一步 #

现在你已经了解了 Bun Worker,继续学习其他高级特性。

最后更新:2026-03-29