Response: blob() 方法

Baseline 已广泛支持

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

注意:此功能在 Web Workers 中可用。

Response 接口的 blob() 方法会读取一个 Response 流并将其完全读取。它返回一个解析为 Blob 的 Promise。

语法

js
blob()

参数

无。

注意: 如果 ResponseResponse.type"opaque",则生成的 Blob 将具有 Blob.size0Blob.type 为空字符串 "",这将使其对于 URL.createObjectURL() 等方法无用

返回值

一个解析为 Blob 的 Promise。

异常

AbortError DOMException

请求已被 中止

TypeError

因以下原因之一而抛出:

示例

在我们 fetch 请求示例(运行 fetch 请求实时演示)中,我们使用 Request() 构造函数创建了一个新请求,然后使用它来获取一个 JPG。当 fetch 成功时,我们使用 blob() 方法从响应中读取一个 Blob,使用 URL.createObjectURL() 将其放入一个对象 URL,然后将该 URL 设置为 <img> 元素的源以显示图像。

js
const myImage = document.querySelector("img");

const myRequest = new Request("flowers.jpg");

fetch(myRequest)
  .then((response) => response.blob())
  .then((myBlob) => {
    const objectURL = URL.createObjectURL(myBlob);
    myImage.src = objectURL;
  });

规范

规范
Fetch
# ref-for-dom-body-blob①

浏览器兼容性

另见