Response方法:clone()
clone() 方法
Response 接口的 clone() 方法创建了一个响应对象的克隆,每种方式都是相同的,但存储在一个不同的变量中。
如果响应 Body 已被使用,则 clone() 将抛出一个 TypeError。事实上,clone() 存在的主要原因是允许 Body 对象的多次使用(当它们只是一次性使用时)。
clone() 方法语法
var response2 = response1.clone();
clone() 方法参数
Response 接口的 clone() 方法没有参数。
clone() 方法值
clone() 方法的值为一个 Response 对象。
clone() 方法示例
在我们的 Fetch Response 克隆示例中,我们使用 Request() 构造函数创建一个新 Request 对象,并将它传递给 JPG 路径。然后我们使用 fetch() 获取这个请求。当 fetch 成功解析时,我们克隆它,使用两个 Body.blob 调用从两个响应中提取 blob,使用 URL.createObjectURL 在 blob 外创建对象 URL,并将它们显示在两个单独的 <img> 元素中。
var image1 = document.querySelector('.img1');
var image2 = document.querySelector('.img2');
var myRequest = new Request('flowers.jpg');
fetch(myRequest).then(function(response) {
var response2 = response.clone();
response.blob().then(function(myBlob) {
var objectURL = URL.createObjectURL(myBlob);
image1.src = objectURL;
});
response2.blob().then(function(myBlob) {
var objectURL = URL.createObjectURL(myBlob);
image2.src = objectURL;
});
});
规范
规范 | 状态 | 注释 |
---|---|---|
Fetch
在该规范中'clone()'的定义。
|
Living Standard
|
初始定义 |
浏览器兼容性
电脑端 | 移动端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Android webview
|
Chrome for Android
|
Edge Mobile | Firefox for Android
|
Opera for Android
|
iOS Safari | |
基本支持 | 支持:42 | 支持 | 支持:39 | 不支持 | 支持:29 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |