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.
Die schreibgeschützte body
Eigenschaft des Body
Mixin ist ein einfacher Getter, der dazu benutzt wird den Inhalt des Body als ReadableStream
bereitzustellen.
Syntax
var stream = responseInstance.body;
Wert
Ein ReadableStream
.
Beispiel
In unserem einfachen Stream-Pump-Beispiel rufen wir ein Bild ab, machen den Antwort-Stream mit response.body
sichtbar, erstellen einen Reader mit ReadableStream.getReader()
und reihen die Teile des Streams in einen zweiten, benutzerdefinierten, lesbaren Stream — wodurch wie eine exakte Kopie des Bilds erhalten.
const image = document.getElementById('target');
// Bild holen
fetch('./tortoise.png')
// Body als ReadableStream abrufen
.then(response => response.body)
.then(body => {
const reader = body.getReader();
return new ReadableStream({
start(controller) {
return pump();
function pump() {
return reader.read().then(({ done, value }) => {
// Stream schließen, wenn keine weiteren Daten verarbeitet werden müssen
if (done) {
controller.close();
return;
}
// Das nächste Datenstück in unseren Ziel-Stream einreihen
controller.enqueue(value);
return pump();
});
}
}
})
})
.then(stream => new Response(stream))
.then(response => response.blob())
.then(blob => URL.createObjectURL(blob))
.then(url => console.log(image.src = url))
.catch(err => console.error(err));
Spezifikationen
Specification | Status | Comment |
---|---|---|
Fetch Die Definition von 'body' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser