Worker: message-Ereignis
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 die übergeordnete Umgebung des Workers eine Nachricht von ihm empfängt (d.h. wenn der Worker eine Nachricht mit DedicatedWorkerGlobalScope.postMessage() sendet).
Dieses Ereignis kann nicht abgebrochen werden und wird nicht nach oben weitergereicht.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("message", (event) => { })
Alternativ können Sie einen Wert der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onmessage = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
Dieser Code erstellt einen neuen Worker und empfängt dessen Nachrichten mithilfe von addEventListener():
const worker = new Worker("static/scripts/worker.js");
worker.addEventListener("message", (event) => {
console.log(`Received message from worker: ${event.data}`);
});
Alternativ können Sie die Nachrichten über die Event-Handler-Eigenschaft onmessage empfangen. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über onmessage hinzugefügte Event-Listener ersetzt werden:
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().