ReadableStreamDefaultReader: ReadableStreamDefaultReader() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since June 2022.

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

Der ReadableStreamDefaultReader() Konstruktor erstellt und gibt eine neue Instanz eines ReadableStreamDefaultReader-Objekts zurück.

Hinweis: Normalerweise würden Sie diesen Konstruktor nicht manuell verwenden; stattdessen würden Sie die Methode ReadableStream.getReader() nutzen.

Syntax

js
new ReadableStreamDefaultReader(stream)

Parameter

stream

Der ReadableStream, der gelesen werden soll.

Rückgabewert

Eine Instanz des ReadableStreamDefaultReader-Objekts.

Ausnahmen

TypeError

Wird ausgelöst, wenn der übergebene stream-Parameter kein ReadableStream ist oder bereits zum Lesen durch einen anderen Reader gesperrt ist.

Beispiele

Im folgenden einfachen Beispiel wird ein zuvor erstellter benutzerdefinierter ReadableStream mithilfe eines ReadableStreamDefaultReader gelesen, der mit getReader() erstellt wurde. (siehe unser Einfaches Zufallsstrom-Beispiel für den vollständigen Code). Jeder Chunk wird nacheinander gelesen und in die Benutzeroberfläche ausgegeben, bis der Stream vollständig gelesen ist. Dann kehren wir aus der rekursiven Funktion zurück und geben den gesamten Stream in einem anderen Teil der Benutzeroberfläche aus.

js
function fetchStream() {
  const reader = stream.getReader();
  let charsReceived = 0;

  // read() returns a promise that resolves
  // when a value has been received
  reader.read().then(function processText({ done, value }) {
    // Result objects contain two properties:
    // done  - true if the stream has already given you all its data.
    // value - some data. Always undefined when done is true.
    if (done) {
      console.log("Stream complete");
      para.textContent = result;
      return;
    }

    // value for fetch streams is a Uint8Array
    charsReceived += value.length;
    const chunk = value;
    let listItem = document.createElement("li");
    listItem.textContent = `Received ${charsReceived} characters so far. Current chunk = ${chunk}`;
    list2.appendChild(listItem);

    result += chunk;

    // Read some more, and call this function again
    return reader.read().then(processText);
  });
}

Spezifikationen

Specification
Streams
# ref-for-default-reader-constructor①

Browser-Kompatibilität

Siehe auch