Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 Juli 2015.
Hinweis: Diese Funktion ist inWeb Workers verfügbar, mit Ausnahme vonService Workers.
Dasmessage-Ereignis wird auf einemWorker-Objekt ausgelöst, wenn die übergeordnete Instanz des Workers eine Nachricht von ihrem Worker erhält (d.h. wenn der Worker eine Nachricht mithilfe vonDedicatedWorkerGlobalScope.postMessage() sendet).
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergeleitet.
In diesem Artikel
Syntax
Verwenden Sie den Ereignisnamen in Methoden wieaddEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("message", (event) => { })onmessage = (event) => { }Ereignistyp
EinMessageEvent. Erbt vonEvent.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil,Event.
MessageEvent.dataSchreibgeschütztDie vom Nachrichtenemittenten gesendeten Daten.
MessageEvent.originSchreibgeschütztEin String, der den Ursprung des Nachrichtenemittenten darstellt.
MessageEvent.lastEventIdSchreibgeschütztEin String, der eine eindeutige ID für das Ereignis darstellt.
MessageEvent.sourceSchreibgeschütztEine
MessageEventSource(die einWindowProxy,MessagePortoder einServiceWorker-Objekt sein kann), die den Nachrichtenemittenten darstellt.MessageEvent.portsSchreibgeschütztEin 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 mitaddEventListener() ab:
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 deronmessage-Ereignis-Handler-Eigenschaft abgehört werden:
const worker = new Worker("static/scripts/worker.js");worker.onmessage = (event) => { console.log(`Received message from worker: ${event.data}`);};Der Worker sendet Nachrichten mitself.postMessage():
// static/scripts/worker.jsself.postMessage("I'm alive!");Spezifikationen
| Specification |
|---|
| HTML> # event-message> |
Browser-Kompatibilität
Siehe auch
- Verwandte Ereignisse:
messageerror. DedicatedWorkerGlobalScope.postMessage().