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

View in English Always switch to English

ReadableStreamDefaultController

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Januar 2020⁩.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das ReadableStreamDefaultController-Interface der Streams API repräsentiert einen Controller, der die Steuerung des Zustands eines ReadableStream und dessen interner Warteschlange ermöglicht. Standard-Controller sind für Streams, die keine Byte-Streams sind.

Konstruktor

Keiner. ReadableStreamDefaultController-Instanzen werden automatisch während der Konstruktion eines ReadableStream erstellt.

Instanzeigenschaften

ReadableStreamDefaultController.desiredSize Schreibgeschützt

Gibt die gewünschte Größe zurück, die erforderlich ist, um die interne Warteschlange des Streams zu füllen.

Instanzmethoden

ReadableStreamDefaultController.close()

Schließt den zugehörigen Stream.

ReadableStreamDefaultController.enqueue()

Stellt einen gegebenen Block in der zugehörigen Stream-Warteschlange ein.

ReadableStreamDefaultController.error()

Verursacht, dass alle zukünftigen Interaktionen mit dem zugehörigen Stream fehlschlagen.

Beispiele

Im folgenden einfachen Beispiel wird ein benutzerdefinierter ReadableStream mit einem Konstruktor erstellt (sehen Sie sich unser einfaches Beispiel für einen zufälligen Stream für den vollständigen Code an). Die start()-Funktion generiert jede Sekunde eine zufällige Textzeichenfolge und stellt sie in den Stream ein. Eine cancel()-Funktion wird ebenfalls bereitgestellt, um die Generierung zu stoppen, wenn ReadableStream.cancel() aus irgendeinem Grund aufgerufen wird.

Beachten Sie, dass ein ReadableStreamDefaultController-Objekt als Parameter der Funktionen start() und pull() bereitgestellt wird.

Wenn eine Schaltfläche gedrückt wird, wird die Generierung gestoppt, der Stream wird mit ReadableStreamDefaultController.close() geschlossen, und eine andere Funktion wird ausgeführt, die die Daten wieder aus dem Stream liest.

js
let interval;
const stream = new ReadableStream({
  start(controller) {
    interval = setInterval(() => {
      let string = randomChars();

      // Add the string to the stream
      controller.enqueue(string);

      // show it on the screen
      let listItem = document.createElement("li");
      listItem.textContent = string;
      list1.appendChild(listItem);
    }, 1000);

    button.addEventListener("click", () => {
      clearInterval(interval);
      fetchStream();
      controller.close();
    });
  },
  pull(controller) {
    // We don't really need a pull in this example
  },
  cancel() {
    // This is called if the reader cancels,
    // so we should stop generating strings
    clearInterval(interval);
  },
});

Spezifikationen

Specification
Streams
# rs-default-controller-class

Browser-Kompatibilität

Siehe auch