rong_worker
JavaScript worker 线程
本页 API 参考由仓库内的英文文档生成,暂仅提供英文版。
Worker — Web Workers
Run JavaScript in a dedicated OS thread with its own JS runtime and event loop. Communication via JSON-serialized messages.
Basic Usage
// main.js
const worker = new Worker("./task.js");
worker.onmessage = (event) => {
console.log("Result:", event.data);
};
worker.postMessage({ numbers: [1, 2, 3, 4, 5] });
// task.js
onmessage = (event) => {
const sum = event.data.numbers.reduce((a, b) => a + b, 0);
postMessage({ sum });
};
Main Thread API
Constructor
const worker = new Worker("./script.js");
Path can be absolute or relative to cwd.
Send Message
worker.postMessage(data);
data is serialized via JSON.stringify and deserialized via JSON.parse on the worker side.
Receive Message
worker.onmessage = (event) => {
console.log(event.data);
};
Error Handling
worker.onerror = (event) => {
console.error("Worker error:", event.message);
};
onerror receives an object with type and message fields.
Terminate
worker.terminate();
Worker-Side API
Global APIs available inside worker scripts:
| API | Description |
|---|---|
onmessage = (event) => {} | Receive messages from main thread |
postMessage(data) | Send message to main thread |
close() | Close the worker |
self | Worker global scope reference |
Notes
- Each worker runs in a dedicated OS thread with its own JS engine instance
- Messages are JSON-serialized — no shared memory
- Workers have
consoleby default; other modules can be configured viarong_worker::set_initializer - After
terminate(), the worker stops processing new messages