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: 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

js
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.

js
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

Browser-Kompatibilität

Siehe auch