Request:clone() 方法
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
备注: 此特性在 Web Worker 中可用。
Request
接口的 clone()
方法创建当前 Request
对象的副本。
与底层 ReadableStream.tee
API 类似,克隆的 Response
的 body
会根据两个主体中消费速度更快的消费者来触发背压,且未读取的数据会在内部入队到消费速度较慢的主体中,没有任何限制或背压。从数据流构造 Request
并将其 clone
时要小心。
如果请求体已被使用,clone()
就会抛出 TypeError
。实际上,clone()
存在的主要原因是允许主体对象的多次使用(当它们只能使用一次时)。
如果你打算修改请求,可能更倾向于使用 Request
构造函数。
语法
js
clone()
参数
无。
返回值
Request
对象,它是调用了 clone()
的 Request
的完整副本。
示例
在以下代码片段中,我们使用 Request()
构造函数创建了一个新的请求(请求同一目录下的一个图像文件),然后克隆了该请求。
js
const myRequest = new Request("flowers.jpg");
const newRequest = myRequest.clone(); // 请求的副本现已存储在 newRequest 中。
规范
Specification |
---|
Fetch Standard # ref-for-dom-request-clone① |
浏览器兼容性
BCD tables only load in the browser