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
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:
optionsOptional-
Ein Optionsobjekt mit den folgenden Eigenschaften:
signalOptional-
Ein
AbortSignal, mit dem der Vorgang abgebrochen werden kann. Wird das Signal abgebrochen, wird das Abonnement der Quelle beendet und das Promise mit demreasondes 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.
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> |