Worker: message event
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar, mit Ausnahme von Service Workers.
Das message-Ereignis wird auf einem Worker-Objekt ausgelöst, wenn der übergeordnete Prozess des Workers eine Nachricht von seinem Worker erhält (d.h. wenn der Worker eine Nachricht mittels DedicatedWorkerGlobalScope.postMessage() sendet).
Dieses Ereignis ist nicht abbruchsicher und wird nicht weitergeleitet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder legen Sie eine Ereignis-Handler-Eigenschaft fest.
addEventListener("message", (event) => { })
onmessage = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
Dieser Code erstellt einen neuen Worker und lauscht Nachrichten von diesem Worker mit addEventListener():
const worker = new Worker("static/scripts/worker.js");
worker.addEventListener("message", (event) => {
console.log(`Received message from worker: ${event.data}`);
});
Alternativ könnte es das onmessage Ereignis-Handler-Property verwenden:
const worker = new Worker("static/scripts/worker.js");
worker.onmessage = (event) => {
console.log(`Received message from worker: ${event.data}`);
};
Der Worker sendet Nachrichten mit self.postMessage():
// static/scripts/worker.js
self.postMessage("I'm alive!");
Spezifikationen
| Spezifikation |
|---|
| HTML> # event-message> |
Browser-Kompatibilität
Siehe auch
- Verwandte Ereignisse:
messageerror. DedicatedWorkerGlobalScope.postMessage().