ReadableStreamDefaultReader
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die ReadableStreamDefaultReader
-Schnittstelle der Streams API repräsentiert einen Standard-Reader, der verwendet werden kann, um Datenströme aus einem Netzwerk (wie zum Beispiel einer fetch
-Anfrage) zu lesen.
Ein ReadableStreamDefaultReader
kann verwendet werden, um aus einem ReadableStream
zu lesen, der eine zugrunde liegende Quelle irgendeines Typs hat (im Gegensatz zu einem ReadableStreamBYOBReader
, der nur mit lesbaren Strömen verwendet werden kann, die eine zugrunde liegende Bytequelle haben).
Beachten Sie jedoch, dass Zero-Copy-Übertragung von einer zugrunde liegenden Quelle nur für zugrunde liegende Bytequellen unterstützt wird, die Puffer automatisch zuweisen.
Mit anderen Worten, der Stream muss konstruiert worden sein, wobei sowohl type="bytes"
als auch autoAllocateChunkSize
angegeben wurde.
Für jede andere zugrunde liegende Quelle wird der Stream immer Leseanforderungen mit Daten aus internen Warteschlangen erfüllen.
Konstruktor
ReadableStreamDefaultReader()
-
Erstellt und gibt eine Instanz eines
ReadableStreamDefaultReader
-Objekts zurück.
Instanz-Eigenschaften
ReadableStreamDefaultReader.closed
Schreibgeschützt-
Gibt ein
Promise
zurück, das erfüllt wird, wenn der Stream schließt, oder abgelehnt wird, wenn der Stream einen Fehler auslöst oder die Sperre des Lesers freigegeben wird. Diese Eigenschaft ermöglicht es Ihnen, Code zu schreiben, der auf ein Ende des Streaming-Prozesses reagiert.
Instanz-Methoden
ReadableStreamDefaultReader.cancel()
-
Gibt ein
Promise
zurück, das aufgelöst wird, wenn der Stream abgebrochen wird. Das Aufrufen dieser Methode signalisiert einen Verlust des Interesses an dem Stream durch einen Verbraucher. Das übergebenereason
-Argument wird der zugrunde liegenden Quelle übergeben, die es möglicherweise nutzt oder ignoriert. ReadableStreamDefaultReader.read()
-
Gibt ein Versprechen zurück, das Zugriff auf den nächsten Chunk in der internen Warteschlange des Streams bietet.
ReadableStreamDefaultReader.releaseLock()
-
Gibt die Sperre des Lesers auf den Stream frei.
Beispiele
Im folgenden Beispiel wird eine künstliche Response
erstellt, um HTML-Fragmente, die von einer anderen Ressource abgerufen wurden, an den Browser zu streamen.
Es zeigt die Verwendung eines ReadableStream
in Kombination mit einem Uint8Array
.
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
Specification |
---|
Streams Standard # default-reader-class |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Streams API Konzepte
- Verwendung von lesbaren Streams
ReadableStream
- WHATWG Stream Visualizer, für eine grundlegende Visualisierung von lesbaren, beschreibbaren und Transformationsströmen.
- Web-streams-polyfill oder sd-streams - Polyfills