Observable: take()-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 take()-Methode der Observable-Schnittstelle gibt ein neues Observable zurück, das die angegebene Anzahl von Werten vom Anfang des Quell-Observables ausgibt und danach abgeschlossen wird.
Syntax
take(amount)
Parameter
amount-
Die Anzahl der Werte, die vom Anfang des Quell-Observables übernommen werden sollen. Sie sollte eine vorzeichenlose Ganzzahl sein.
Rückgabewert
Ein neues Observable. Wenn es abonniert wird, gibt es Werte aus dem Quell-Observable aus, bis amount Werte ausgegeben wurden oder das Quell-Observable abgeschlossen wird – je nachdem, was zuerst eintritt. Sobald die Grenze erreicht ist, wird das zurückgegebene Observable abgeschlossen und meldet sich vom Quell-Observable ab.
Beschreibung
Wie andere Operatoren, die ein Observable zurückgeben, arbeitet diese Methode verzögert: Ihr Aufruf erstellt ein neues Observable, ohne das Quell-Observable zu abonnieren. Die Verarbeitung beginnt, wenn das zurückgegebene Observable abonniert wird.
Wenn amount den Wert 0 hat, wird das zurückgegebene Observable beim Abonnieren sofort abgeschlossen, ohne das Quell-Observable zu abonnieren. Fehler des Quell-Observables werden weitergeleitet, bis das zurückgegebene Observable abgeschlossen ist.
Beispiele
>take() verwenden
Dieses Beispiel zählt die ersten fünf Klicks auf eine Schaltfläche. Beim fünften Klick wird der Zähler durch eine Abschlussmeldung ersetzt; weitere Klicks werden ignoriert. Klicken Sie nach dem Ende des Streams auf „Neustart“, um es erneut zu versuchen.
const btn = document.querySelector("button");
const para = document.querySelector("p");
let countValue = 0;
function increment() {
countValue++;
para.textContent = `Click count: ${countValue}`;
}
const restart = document.querySelector("#restart");
function start() {
restart.disabled = true;
countValue = 0;
para.textContent = "Click count: 0";
btn
.when("click")
.take(5)
.subscribe({
next: increment,
complete() {
restart.disabled = false;
para.textContent = `Count finished!`;
},
});
}
restart.when("click").subscribe(start);
start();
Spezifikationen
| Spezifikation |
|---|
| Observable> # dom-observable-take> |