The onmessage
property of the Worker
interface represents an event handler, that is a function to be called when the message
event occurs. These events are of type MessageEvent
and will be called when the worker's parent receives a message (i.e. from the DedicatedWorkerGlobalScope.postMessage
method).
Note that deserializing the message sent by postMessage()
blocks the thread receiving it.
Note: The message payload is available in the message
event's data
property.
myWorker.onmessage = function(e) { ... }
The following code snippet shows creation of a Worker
object using the Worker()
constructor. Messages are passed to the worker when the value inside the form input first
changes. An onmessage handler is also present, to deal with messages that are passed back from the worker.
var myWorker = new Worker('worker.js'); first.onchange = function() { myWorker.postMessage([first.value,second.value]); console.log('Message posted to worker'); } myWorker.onmessage = function(e) { result.textContent = e.data; console.log('Message received from worker'); }
In the worker.js
script, an onmessage
handler is used to the handle messages from the main script:
onmessage = function(e) { console.log('Message received from main script'); var workerResult = 'Result: ' + (e.data[0] * e.data[1]); console.log('Posting message back to main script'); postMessage(workerResult); }
Notice how in the main script, onmessage
has to be called on myWorker
, whereas inside the worker script you just need onmessage
because the worker is effectively the global scope (DedicatedWorkerGlobalScope
).
For a full example, see ourBasic dedicated worker example (run dedicated worker).
Specification |
---|
HTML Standard (HTML) # handler-worker-onmessage |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
onmessage |
4 |
12 |
3.5 |
10 |
10.6 |
4 |
4 |
18 |
4 |
11 |
5 |
1.0 |
The Worker
interface it belongs to.
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Worker/onmessage