Visitar URL original
ReadableStreamDefaultReader - Web-APIs | MDN

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

View in English Always switch to English

ReadableStreamDefaultReader

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

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

Die Schnittstelle ReadableStreamDefaultReader der Streams API stellt einen Standard-Reader dar, mit dem Stream-Daten gelesen werden können, die über ein Netzwerk bereitgestellt werden (beispielsweise durch eine Fetch-Anfrage).

Ein ReadableStreamDefaultReader kann Daten aus einem ReadableStream mit einer zugrunde liegenden Quelle beliebigen Typs lesen. Im Gegensatz dazu kann ein ReadableStreamBYOBReader nur mit lesbaren Streams verwendet werden, die eine zugrunde liegende Byte-Quelle haben.

Beachten Sie jedoch, dass eine Zero-Copy-Übertragung aus einer zugrunde liegenden Quelle nur für zugrunde liegende Byte-Quellen unterstützt wird, die Puffer automatisch zuweisen. Anders ausgedrückt: Der Stream muss unter Angabe sowohl von type="bytes" als auch von autoAllocateChunkSize erstellt worden sein. Bei allen anderen zugrunde liegenden Quellen bedient der Stream Leseanfragen stets mit Daten aus internen Warteschlangen.

Konstruktor

ReadableStreamDefaultReader()

Erstellt eine ReadableStreamDefaultReader-Objektinstanz und gibt sie zurück.

Instanzeigenschaften

ReadableStreamDefaultReader.closed Schreibgeschützt

Gibt eine Promise zurück, die erfüllt wird, wenn der Stream geschlossen wird, oder zurückgewiesen wird, wenn im Stream ein Fehler auftritt oder die Sperre des Readers freigegeben wird. Mit dieser Eigenschaft können Sie Code schreiben, der auf das Ende des Streaming-Vorgangs reagiert.

Instanzmethoden

ReadableStreamDefaultReader.cancel()

Gibt eine Promise zurück, die aufgelöst wird, wenn der Stream abgebrochen wurde. Der Aufruf dieser Methode signalisiert, dass ein Verbraucher nicht mehr an dem Stream interessiert ist. Das übergebene Argument reason wird an die zugrunde liegende Quelle weitergegeben, die es verwenden kann, aber nicht muss.

ReadableStreamDefaultReader.read()

Gibt eine Promise zurück, die Zugriff auf den nächsten Datenblock in der internen Warteschlange des Streams bietet.

ReadableStreamDefaultReader.releaseLock()

Gibt die Sperre des Readers für den Stream frei.

Beispiele

Im folgenden Beispiel wird eine künstliche Response erstellt, um HTML-Fragmente, die von einer anderen Ressource abgerufen werden, an den Browser zu streamen.

Das Beispiel zeigt die Verwendung eines ReadableStream zusammen mit einem Uint8Array.

js
fetch("https://www.example.org/").then((response) => {
  const reader = response.body.getReader();
  const stream = new ReadableStream({
    start(controller) {
      // The following function handles each data chunk
      function push() {
        // "done" is a Boolean and value a "Uint8Array"
        return reader.read().then(({ done, value }) => {
          // Is there no more data to read?
          if (done) {
            // Tell the browser that we have finished sending data
            controller.close();
            return;
          }

          // Get the data and send it to the browser via the controller
          controller.enqueue(value);
          push();
        });
      }

      push();
    },
  });

  return new Response(stream, { headers: { "Content-Type": "text/html" } });
});

Spezifikationen

Spezifikation
Streams
# default-reader-class

Browser-Kompatibilität

Siehe auch