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

View in English Always switch to English

Observable: forEach()-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 forEach()-Methode des Observable-Interfaces gibt ein Promise zurück, das mit undefined erfüllt wird, wenn das Quell-Observable abgeschlossen ist. Zuvor wird für jeden ausgegebenen Wert eine Callback-Funktion ausgeführt.

Syntax

js
forEach(callback)
forEach(callback, options)

Parameter

callback

Eine Funktion, die für jeden vom Quell-Observable ausgegebenen Wert ausgeführt wird. Ihr Rückgabewert wird ignoriert. Die Funktion wird mit den folgenden Argumenten aufgerufen:

value

Der aktuell verarbeitete Wert.

index

Der Index des aktuell verarbeiteten Werts, beginnend bei 0.

options Optional

Ein Optionsobjekt mit den folgenden Eigenschaften:

signal Optional

Ein AbortSignal, mit dem der Vorgang abgebrochen werden kann. Wird das Signal abgebrochen, wird das Abonnement der Quelle beendet und das Promise mit dem reason des Signals zurückgewiesen. Ist das Signal bereits abgebrochen, wird das Promise zurückgewiesen, ohne die Quelle zu abonnieren.

Rückgabewert

Ein Promise, das mit undefined erfüllt wird, wenn das Quell-Observable abgeschlossen ist.

Tritt bei der Quelle ein Fehler auf oder löst callback eine Ausnahme aus, wird das Promise mit diesem Fehler zurückgewiesen. Wird der Vorgang abgebrochen, wird das Promise mit dem Grund für den Abbruch zurückgewiesen.

Beschreibung

Wie andere Operatoren, die ein Promise zurückgeben, abonniert diese Methode die Quelle unmittelbar beim Aufruf. Ein separater Aufruf von subscribe() ist nicht erforderlich.

forEach() ruft callback einmal für jeden Wert der Quelle auf. Wird die Quelle nie abgeschlossen, bleibt das Promise ausstehend, sofern kein Fehler auftritt oder der Vorgang abgebrochen wird.

Der Rückgabewert von callback wird ignoriert. Zurückgegebene Promises werden nicht abgewartet, und ihre Zurückweisungen werden von forEach() nicht behandelt. Wenn Sie bei jedem Wert auf asynchrone Arbeit warten möchten, verwenden Sie flatMap(), um ein Promise aus der Mapper-Funktion zurückzugeben.

Wenn callback eine Ausnahme auslöst, wird das Abonnement der Quelle beendet.

Beispiele

forEach() verwenden

Dieses Beispiel zeigt die Koordinaten der ersten drei Klicks auf die Schaltfläche an und fügt anschließend eine Abschlussmeldung hinzu. Klicken Sie auf „Restart“, nachdem der Stream beendet wurde, um es erneut zu versuchen.

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

const restart = document.querySelector("#restart");

function start() {
  restart.disabled = true;
  output.textContent = "Waiting for clicks";
  btn
    .when("click")
    .take(3)
    .forEach((event, index) => {
      output.textContent = `Click ${index + 1}: ${event.clientX},${event.clientY}`;
    })
    .then(() => {
      restart.disabled = false;
      output.textContent += " — Count complete.";
    });
}

restart.when("click").subscribe(start);
start();

Spezifikationen

Spezifikation
Observable
# dom-observable-foreach

Browser-Kompatibilität

Siehe auch