--- title: ReadableStream slug: Web/API/ReadableStream tags: - API - Fetch - Interface - Reference - Streams translation_of: Web/API/ReadableStream ---
{{APIRef("Streams")}}{{SeeCompatTable}}
Das ReadableStream Interface der Streams API repräsentiert einen lesbaren Datenstrom von Bytes.
ReadableStream Interfaces.reason Argument wird an die darunterliegende Quelle weitergegeben, welche dieses benutzen kann. mode Option angegeben wird, und sperrt den Stream für den neuen Reader. Während der Stream gesperrt ist kann kein anderer Reader angelegt werden bis dieser freigegeben wurde.ReadableStream zu einem gegebenen {{domxref("WritableStream")}} und gibt ein {{domxref("Promise")}} zurück welches erfüllt ist, wenn der Piping-Prozess erfolgreich beendet wurde oder verwirft es, wenn irgendein anderer Fehler auftritt.ReadableStream in zwei neue Stream-Instanzen, auf denen parallel gelesen werden kann.getIterator-Methode.Im folgenden Beispiel wird eine {{domxref("Response")}} erzeugt, die HTML-Fragmente einer anderen Ressource fetched und an den Browser streamt.
Dadurch wird die Benutzung von {{domxref("ReadableStream")}} in Kombination mit {{domxref("Uint8Array")}} gezeigt.
fetch("https://www.example.org/").then((response) => {
  const reader = response.body.getReader();
  const stream = new ReadableStream({
    start(controller) {
      // Die folgende Funktion behandelt jeden Daten-Chunk
      function push() {
        // "done" ist ein Boolean und "value" ein "Uint8Array"
        return reader.read().then(({ done, value }) => {
          // Gibt es weitere Daten zu laden?
          if (done) {
            // Teile dem Browser mit, dass wir fertig mit dem Senden von Daten sind
            controller.close();
            return;
          }
          // Bekomme die Daten und sende diese an den Browser durch den Controller weiter
          controller.enqueue(value);
        }).then(push);
      };
      push();
    }
  });
  return new Response(stream, { headers: { "Content-Type": "text/html" } });
});
| Spezifikation | Status | Kommentar | 
|---|---|---|
| {{SpecName('Streams','#rs-class','ReadableStream')}} | {{Spec2('Streams')}} | Initial definition |