--- title: Response.clone() slug: Web/API/Response/clone tags: - API - Experimental - Fetch - Method - Reference - Response - clone translation_of: Web/API/Response/clone original_slug: Web/API/Response/克隆 ---
{{domxref("Response")}} 接口的 clone() 方法创建了一个响应对象的克隆,这个对象在所有方面都是相同的,但是存储在一个不同的变量中。
如果已经使用了响应 {{domxref("Body")}},clone()
会抛出{{jsxref("TypeError")}}。 实际上,clone()存在的主要原因是允许多次使用{{domxref("Body")}}对象(当它们是一次性使用的时候)。
var response2 = response1.clone();
None.
一个 {{domxref("Response")}} 对象.
在我们的 Fetch Response 克隆示例 (请参阅 Fetch Response clone live) 我们使用{{domxref("Request.Request","Request()")}} 构造函数创建一个新的 {{domxref("Request")}} 来传递一个 JPG 路径。 然后我们使用 {{domxref("GlobalFetch.fetch","fetch()")}} 获取这个请求。 当 fetch resolve 时,我们克隆它,使用两个{{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; }); });
Specification | Status | Comment |
---|---|---|
{{SpecName('Fetch','#dom-response-clone','clone()')}} | {{Spec2('Fetch')}} | Initial definition |
{{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 |
{{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] 此功能是在首选项后面实现的。