ReadableStreamDefaultReader
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Schnittstelle ReadableStreamDefaultReader der Streams API stellt einen Standard-Reader dar, mit dem Stream-Daten gelesen werden können, die über ein Netzwerk bereitgestellt werden (beispielsweise durch eine Fetch-Anfrage).
Ein ReadableStreamDefaultReader kann Daten aus einem ReadableStream mit einer zugrunde liegenden Quelle beliebigen Typs lesen. Im Gegensatz dazu kann ein ReadableStreamBYOBReader nur mit lesbaren Streams verwendet werden, die eine zugrunde liegende Byte-Quelle haben.
Beachten Sie jedoch, dass eine Zero-Copy-Übertragung aus einer zugrunde liegenden Quelle nur für zugrunde liegende Byte-Quellen unterstützt wird, die Puffer automatisch zuweisen.
Anders ausgedrückt: Der Stream muss unter Angabe sowohl von type="bytes" als auch von autoAllocateChunkSize erstellt worden sein.
Bei allen anderen zugrunde liegenden Quellen bedient der Stream Leseanfragen stets mit Daten aus internen Warteschlangen.
Konstruktor
ReadableStreamDefaultReader()-
Erstellt eine
ReadableStreamDefaultReader-Objektinstanz und gibt sie zurück.
Instanzeigenschaften
ReadableStreamDefaultReader.closedSchreibgeschützt-
Gibt eine
Promisezurück, die erfüllt wird, wenn der Stream geschlossen wird, oder zurückgewiesen wird, wenn im Stream ein Fehler auftritt oder die Sperre des Readers freigegeben wird. Mit dieser Eigenschaft können Sie Code schreiben, der auf das Ende des Streaming-Vorgangs reagiert.
Instanzmethoden
ReadableStreamDefaultReader.cancel()-
Gibt eine
Promisezurück, die aufgelöst wird, wenn der Stream abgebrochen wurde. Der Aufruf dieser Methode signalisiert, dass ein Verbraucher nicht mehr an dem Stream interessiert ist. Das übergebene Argumentreasonwird an die zugrunde liegende Quelle weitergegeben, die es verwenden kann, aber nicht muss. ReadableStreamDefaultReader.read()-
Gibt eine Promise zurück, die Zugriff auf den nächsten Datenblock in der internen Warteschlange des Streams bietet.
ReadableStreamDefaultReader.releaseLock()-
Gibt die Sperre des Readers für den Stream frei.
Beispiele
Im folgenden Beispiel wird eine künstliche Response erstellt, um HTML-Fragmente, die von einer anderen Ressource abgerufen werden, an den Browser zu streamen.
Das Beispiel zeigt die Verwendung eines ReadableStream zusammen 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
| Spezifikation |
|---|
| Streams> # default-reader-class> |