Observable: Methode last()
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 Methode last() der Schnittstelle Observable gibt ein Promise zurück, das mit dem letzten vom Quell-Observable ausgegebenen Wert erfüllt wird.
Syntax
last()
last(options)
Parameter
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 dem letzten vom Quell-Observable ausgegebenen Wert erfüllt wird, wenn die Quelle abgeschlossen ist. Wird die Quelle abgeschlossen, ohne einen Wert auszugeben, wird das Promise mit einem RangeError zurückgewiesen.
Tritt bei der Quelle ein Fehler auf, 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 sofort beim Aufruf. Ein separater Aufruf von subscribe() ist nicht erforderlich.
last() speichert den zuletzt ausgegebenen Wert und wartet darauf, dass die Quelle abgeschlossen wird. Wird die Quelle nie abgeschlossen, bleibt das Promise ausstehend, sofern kein Fehler auftritt oder der Vorgang abgebrochen wird.
Ist der ausgewählte Wert ein Promise, übernimmt das zurückgegebene Promise dessen endgültigen Zustand, statt mit dem Promise-Objekt selbst erfüllt zu werden.
Beispiele
>last() verwenden
Dieses Beispiel wartet auf drei Klicks auf eine Schaltfläche und zeigt anschließend die Koordinaten des letzten Klicks an. Klicken Sie nach dem Ende des Streams auf „Restart“, 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)
.last()
.then((result) => {
restart.disabled = false;
output.textContent = `${result.clientX},${result.clientY}`;
});
}
restart.when("click").subscribe(start);
start();
Spezifikationen
| Spezifikation |
|---|
| Observable> # dom-observable-last> |