Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

EventTarget: when()-Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die when()-Methode der EventTarget-Schnittstelle gibt ein Observable-Objekt zurück, das einen Strom von Ereignissen repräsentiert, die auf dem EventTarget ausgelöst werden, auf dem die Methode aufgerufen wird.

Sie können auf dem zurückgegebenen Observable subscribe() aufrufen, um den Ereignisstrom zu abonnieren.

Das zurückgegebene Observable verwendet im Hintergrund einen Event Listener, wie er auch durch EventTarget.addEventListener() erstellt wird. Die Erstellung dieses Listeners, seine gemeinsame Nutzung durch Observer und seine Entfernung folgen demselben Lebenszyklus wie das Subscriber-Objekt eines benutzerdefinierten Observables.

Hinweis: Dieses Verhalten bei gemeinsam genutzten Abonnements kann sich ändern. Ein Vorschlag, jedem Observer einen eigenen Subscriber zu geben, würde dazu führen, dass jedes Abonnement eine separate Ausführung startet, statt ein aktives Abonnement wiederzuverwenden.

Syntax

js
when(type)
when(type, options)

Parameter

type

Eine Zeichenfolge, bei der die Groß- und Kleinschreibung beachtet wird und die den Ereignistyp angibt, auf den gewartet werden soll.

options Optional

Ein Objekt, das Eigenschaften des Event Listeners festlegt. Folgende Optionen sind verfügbar:

capture Optional

Ein boolescher Wert, der angibt, dass Ereignisse des angegebenen Typs an den im Hintergrund registrierten Listener weitergeleitet werden, bevor sie an ein darunterliegendes EventTarget im DOM-Baum weitergeleitet werden. Wenn die Option nicht angegeben wird, ist der Standardwert false.

passive Optional

Ein boolescher Wert, der bei true angibt, dass Callbacks, die die Ereignisse verarbeiten, niemals preventDefault() aufrufen. Ruft ein passiver Listener preventDefault() auf, hat dies keine Wirkung und es kann eine Warnung in der Konsole ausgegeben werden.

Wenn diese Option nicht angegeben wird, gilt derselbe Standardwert wie bei addEventListener(). Weitere Informationen finden Sie unter Passive Listener verwenden.

Rückgabewert

Ein Observable.

Beispiele

when() verwenden

Dieses Beispiel ist eine einfache Anwendung zum Zählen von Klicks.

HTML

Das Markup enthält ein <button>-Element zum Anklicken und ein <p>-Element zur Anzeige der Anzahl der Klicks.

html
<button>Click me</button>
<p>Click count: 0</p>

JavaScript

Wir rufen when("click") auf btn auf und erhalten so ein Observable für den click-Ereignisstrom. Anschließend rufen wir subscribe() auf dem Observable auf, um die Funktion increment() zu abonnieren. Sie wird dadurch bei jedem Klick auf den Button aufgerufen.

js
const btn = document.querySelector("button");
const para = document.querySelector("p");

let countValue = 0;

function increment() {
  countValue++;
  para.textContent = `Click count: ${countValue}`;
}

btn.when("click").subscribe(increment);

Hinweis: In diesem Beispiel sind .when("click").subscribe(increment) und .addEventListener("click", increment) nahezu gleichwertig. Mit when() können Sie jedoch Ereignisströme mithilfe von Observables kombinieren. Der Leitfaden Observables verwenden enthält weitere Beispiele.

Ergebnis

Das gerenderte Ergebnis sieht wie folgt aus:

Klicken Sie auf den Button, um zu sehen, wie sich der Klickzähler erhöht.

Spezifikationen

Spezifikation
Observable
# dom-eventtarget-when

Browser-Kompatibilität

Siehe auch