docs.rodeo

MDN Web Docs mirror

Worker

{{APIRef("Web Workers API")}} {{AvailableInWorkers("window_and_worker_except_service")}} 

The Worker interface of the Web Workers API represents a background task that can be created via script, which can send messages back to its creator.

Creating a worker is done by calling the Worker("path/to/worker/script") constructor.

Workers may themselves spawn new workers, as long as those workers are hosted at the same origin as the parent page.

Note that not all interfaces and functions are available to web workers. See Functions and classes available to Web Workers for details.

{{InheritanceDiagram}} 

Constructors

Instance properties

Inherits properties from its parent, {{domxref("EventTarget")}} .

Instance methods

Inherits methods from its parent, {{domxref("EventTarget")}} .

Events

Example

The following code snippet creates a Worker object using the {{domxref("Worker.Worker", "Worker()")}}  constructor, then uses the worker object:

const myWorker = new Worker("/worker.js");
const first = document.querySelector("input#number1");
const second = document.querySelector("input#number2");

first.onchange = () => {
  myWorker.postMessage([first.value, second.value]);
  console.log("Message posted to worker");
};

For a full example, see our Basic dedicated worker example (run dedicated worker).

Specifications

{{Specifications}} 

Browser compatibility

Support varies for different types of workers. See each worker type’s page for specifics.

{{Compat}} 

Cross-origin worker error behavior

In early versions of the spec, loading a cross-origin worker script threw a SecurityError. Nowadays, an {{domxref("Worker/error_event", "error")}}  event is thrown instead.

See also

In this article

View on MDN