Response.clone()

此页面上有脚本错误。虽然它是写给网站编辑,您可以在下面查看部分内容。

这篇翻译不完整。请帮忙从英语翻译这篇文章

{{APIRef("Fetch")}}

{{domxref(“Response”)}}接口的clone()方法创建了一个响应对象的克隆,这个对象在所有方面都是相同的,但是存储在一个不同的变量中。

如果已经使用了响应{{domxref(“Body”)}},clone()会抛出{{jsxref(“TypeError”)}}。 实际上,clone()存在的主要原因是允许多次使用{{domxref(“Body”)}}对象(当它们是一次性使用的时候)。

Syntax

var response2 = response1.clone();

Parameters

None.

Value

一个 {{domxref("Response")}} 对象.

Example

在我们的 Fetch Response 克隆示例 (请参阅 Fetch Response clone live) 我们使用{{domxref(“Request.Request”,“Request()”)}}构造函数创建一个新的{{domxref(“Request”)} 传递一个JPG路径。 然后我们使用{{domxref(“GlobalFetch.fetch”,“fetch()”)}}获取这个请求。 当抓取成功解析时,我们克隆它,使用两个{{domxref(“Body.blob”)}}调用从两个响应中提取blob,使用{{domxref(“URL.createObjectURL”)从blob创建对象URL }},并将它们显示在两个单独的{{htmlelement(“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;
  });
});

Specifications

Specification Status Comment
{{SpecName('Fetch','#dom-response-clone','clone()')}} {{Spec2('Fetch')}} Initial definition

Browser compatibility

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support {{CompatChrome(42)}}
{{CompatChrome(41)}}[1]
{{CompatVersionUnknown}} {{CompatGeckoDesktop(39)}}
34[1]
{{CompatNo}}

29
28[1]

{{CompatNo}}
Feature Android Edge Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] 此功能是在首选项后面实现的。

See also

文档标签和贡献者

 此页面的贡献者: xiaoxiaojx
 最后编辑者: xiaoxiaojx,