Body接口属性:body
使用此功能之前,请仔细检查浏览器兼容性表。
Body mixin的body只读属性是一个简单的getter,用于发现一个主体内容的ReadableStream。
body语法
var stream = responseInstance.body;
取值
一个ReadableStream。
body属性示例
在我们简单的stream pump示例中,我们获取一个图像,使用response.body来公开响应的流,使用ReadableStream.getReader()来创建读取器,然后将该流的块排入第二个自定义可读流 - 有效地创建一个相同的图像的副本。
const image = document.getElementById('target');
// Fetch the original image
fetch('./tortoise.png')
// Retrieve its body as ReadableStream
.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 }) => {
// When no more data needs to be consumed, close the stream
if (done) {
controller.close();
return;
}
// Enqueue the next data chunk into our target stream
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));
规范
规范 | 状态 | 注释 |
---|---|---|
Fetch 该规范中“body”的定义。 | Living Standard |
浏览器兼容性
- 电脑端
Feature | Chrome | Firefox(Gecko) | Internet Explorer | Opera | Safari(WebKit) |
---|---|---|---|---|---|
基本的支持 | 支持:52.0 | 不支持[1] | 不支持 | 支持:39 | ? |
- 移动端
Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本的支持 | 支持:52 | 支持:52 | 不支持[1] | 不支持 | 支持:39 | ? |
表中的注释:
[1]可读流目前在Firefox中启用,但隐藏在dom.streams.enabled和javascript.options.streamsprefs后面。