ReadableStreamDefaultReader: ReadableStreamDefaultReader() Konstruktor

Hinweis: Dieses Feature ist verfügbar in Web Workers.

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 Standard
# ref-for-default-reader-constructor①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch