Worker: message Event

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 die übergeordnete Instanz des Workers eine Nachricht von ihrem Worker erhält (d.h. wenn der Worker eine Nachricht mithilfe von 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.

js
addEventListener("message", (event) => { })

onmessage = (event) => { }

Ereignistyp

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, Event.

MessageEvent.data Schreibgeschützt

Die vom Nachrichtenemittenten gesendeten Daten.

MessageEvent.origin Schreibgeschützt

Ein String, der den Ursprung des Nachrichtenemittenten darstellt.

MessageEvent.lastEventId Schreibgeschützt

Ein String, der eine eindeutige ID für das Ereignis darstellt.

MessageEvent.source Schreibgeschützt

Eine MessageEventSource (die ein WindowProxy, MessagePort oder ein ServiceWorker-Objekt sein kann), die den Nachrichtenemittenten darstellt.

MessageEvent.ports Schreibgeschützt

Ein Array von MessagePort-Objekten, die die mit dem Kanal verbundenen Ports darstellen, über die die Nachricht gesendet wird (wo zutreffend, z. B. beim Kanal-Messaging oder beim Senden einer Nachricht an einen gemeinsamen Worker).

Beispiele

Dieser Code erstellt einen neuen Worker und hört Nachrichten von ihm mit addEventListener() ab:

js
const worker = new Worker("static/scripts/worker.js");

worker.addEventListener("message", (event) => {
  console.log(`Received message from worker: ${event.data}`);
});

Alternativ könnte er mit der onmessage-Ereignis-Handler-Eigenschaft abgehört werden:

js
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():

js
// static/scripts/worker.js

self.postMessage("I'm alive!");

Spezifikationen

Specification
HTML
# event-message

Browser-Kompatibilität

Siehe auch