ReadableStream

Diese Übersetzung ist unvollständig. Bitte helfen Sie uns, diesen Artikel aus dem Englischen zu übersetzen

Dies ist eine experimentelle Technologie
Da diese Technologie noch nicht definitiv implementiert wurde, sollte die Browserkompatibilität beachtet werden. Es ist auch möglich, dass die Syntax in einer späteren Spezifikation noch geändert wird.

Das ReadableStream Interface der Streams API repräsentiert einen lesbaren Datenstrom von Bytes.

Konstruktor

ReadableStream()
Erstellt eine Instanz des ReadableStream Interfaces.

Eigenschaften

ReadableStream.locked Schreibgeschützt
Gibt zurück, ob der Stream bereits für einen Reader gesperrt ist.

Methoden

ReadableStream.cancel()
Bricht den Stream ab und signalisiert dadurch, dass der Konsument sein Interesse am Stream verloren hat. Das angegebene reason Argument wird an die darunterliegende Quelle weitergegeben, welche dieses benutzen kann. 
ReadableStream.getReader()
Erstellt einen Reader, dessen Typ durch die 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.getIterator()
Erstellt einen asyncronen ReadableStream-Iterator und sperrt den Stream für ihn, sodass der Iterator der einzige Leser ist. Während der Stream gesperrt ist kann kein anderer Reader angelegt werden bis dieser freigegeben wurde.
ReadableStream.pipeThrough()
Bietet die Möglichkeit den Stream mit transformierenden Streams zu verketten.
ReadableStream.pipeTo()
Pipet den aktuellen ReadableStream zu einem gegebenen WritableStream und gibt ein Promise zurück welches erfüllt ist, wenn der Piping-Prozess erfolgreich beendet wurde oder verwirft es, wenn irgendein anderer Fehler auftritt.
ReadableStream.tee()
Verzweigt den ReadableStream in zwei neue Stream-Instanzen, auf denen parallel gelesen werden kann.
ReadableStream[@@asyncIterator]()
Alias der getIterator-Methode.

Benutzung

Im folgenden Beispiel wird eine Response erzeugt, die HTML-Fragmente einer anderen Ressource fetched und an den Browser streamt.

Dadurch wird die Benutzung von ReadableStream in Kombination mit 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" } });
});

Spezifikationen

Spezifikation Status Kommentar
Streams
Die Definition von 'ReadableStream' in dieser Spezifikation.
Lebender Standard Initial definition

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung Internet
ReadableStream
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 14Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0
ReadableStream() constructor
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 79Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0
cancel
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 14Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0
getReader
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 14Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0
locked
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 14Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0
pipeThrough
Experimentell
Chrome Vollständige Unterstützung 59Edge Vollständige Unterstützung 79Firefox Keine Unterstützung NeinIE Keine Unterstützung NeinOpera Vollständige Unterstützung 46Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 59Chrome Android Vollständige Unterstützung 59Firefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung 43Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 7.0
pipeTo
Experimentell
Chrome Vollständige Unterstützung 59Edge Vollständige Unterstützung 79Firefox Keine Unterstützung NeinIE Keine Unterstützung NeinOpera Vollständige Unterstützung 46Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 59Chrome Android Vollständige Unterstützung 59Firefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung 43Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 7.0
tee
Experimentell
Chrome Vollständige Unterstützung 43Edge Vollständige Unterstützung 79Firefox Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 30Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 43Chrome Android Vollständige Unterstützung 43Firefox Android Vollständige Unterstützung 65
Vollständige Unterstützung 65
Vollständige Unterstützung 57
Deaktiviert
Deaktiviert From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Vollständige Unterstützung 30Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 4.0

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Experimentell. Das Verhalten kann sich zukünftig ändern.
Experimentell. Das Verhalten kann sich zukünftig ändern.
Benutzer muss dieses Feature explizit aktivieren.
Benutzer muss dieses Feature explizit aktivieren.