Response:blob() 方法
>备注: 此特性在 Web Worker 中可用。
Response 接口的 blob() 方法将 Response 流读取至结束。它返回一个会兑现 Blob 的 promise。
语法
js
blob()
参数
无。
备注:若 Response 的 Response.type 为 "opaque",则得到的 Blob 的 Blob.size 为 0,Blob.type 为空字符串 "",这会使其对 URL.createObjectURL() 等方法毫无用处。
返回值
一个 promise,会兑现一个 Blob,其数据为响应体的字节,媒体类型为响应 Content-Type 标头的值。
异常
AbortErrorDOMException-
请求已被中止。
TypeError-
由于以下原因之一而抛出:
- 响应主体已被扰乱或锁定。
- 解码主体内容时出错(例如,因为
Content-Encoding标头不正确)。
示例
在我们的 fetch 请求示例(在线运行 fetch 请求)中,我们使用 Request() 构造函数创建新请求,然后用它来获取一张 JPG。获取成功后,我们使用 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①> |