Overview
- traditionally, JS is single-threaded
- web workers offer way to enable some tasks to be offloaded from main thread to a background thread
- can help prevent main thread a blocking process, thereby making the app unresponsive
- benefits
- improved performance
- increased stability
- enhanced security
- better resource utilization
Example
import { Thing } from '../path';
self.onmessage = (event) => {
const dataToProcess = event.data;
self.postMessage(response);
}
const workerUrl = new URL(
'./data.worker', import.meta.url
);
const worker = new Worker(workerUrl);
worker.addEventListener(
'message',
(event) => {
}
);
worker.postMessage(dataToSend);