Body.body - Web API 接口参考 编辑

Body mixin的只读getter属性 body 用于暴露其body内容的ReadableStream(流读取)。

语法

var stream = responseInstance.body;

Value

一个 ReadableStream.

例程

在我们的 simple stream pump 例程中我们fetch一个图片地址,使用response.body暴露响应的流,用ReadableStream.getReader()创建一个读取器,然后将其置入第二个自定义读取流中——有效的创建了一个完全相同的图片副本。

const image = document.getElementById('target');

// 请求原始图片
fetch('./tortoise.png')
// 取出body
.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 }) => {
          // 读不到更多数据就关闭流
          if (done) {
            controller.close();
            return;
          }

          // 将下一个数据块置入流中
          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 

浏览器兼容性

BCD tables only load in the browser

 

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:56 次

字数:2986

最后编辑:8 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文