Worker: message-Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
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 mit DedicatedWorkerGlobalScope.postMessage()
sendet).
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergeleitet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("message", (event) => {});
onmessage = (event) => {};
Ereignistyp
Ein MessageEvent
. Erbt von Event
.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, Event
.
MessageEvent.data
Schreibgeschützt-
Die vom Nachrichtensender gesendeten Daten.
MessageEvent.origin
Schreibgeschützt-
Ein String, der die Herkunft des Nachrichtensenders repräsentiert.
MessageEvent.lastEventId
Schreibgeschützt-
Ein String, der eine eindeutige ID für das Ereignis darstellt.
MessageEvent.source
Schreibgeschützt-
Eine
MessageEventSource
(kann ein WindowProxy, einMessagePort
oder einServiceWorker
-Objekt sein), das den Nachrichtensender darstellt. MessageEvent.ports
Schreibgeschützt-
Ein Array von
MessagePort
-Objekten, das die mit dem Kanal assoziierten Ports repräsentiert, über den die Nachricht gesendet wird (wo zutreffend, z. B. bei Nachrichtenübermittlung in Kanälen oder beim Senden einer Nachricht an einen gemeinsamen Worker).
Beispiele
Dieser Code erstellt einen neuen Worker und hört auf Nachrichten von diesem mittels addEventListener()
:
const worker = new Worker("static/scripts/worker.js");
worker.addEventListener("message", (event) => {
console.log(`Received message from worker: ${event.data}`);
});
Alternativ kann das onmessage
-Ereignis-Handler-Eigenschaft verwendet werden, um zu hören:
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
Specification |
---|
HTML # event-message |
Browser-Kompatibilität
Siehe auch
- Verwandte Ereignisse:
messageerror
. DedicatedWorkerGlobalScope.postMessage()
.