请求:clone() 方法

Baseline 已广泛支持

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

注意:此功能在 Web Workers 中可用。

Request 接口的 clone() 方法会创建一个当前 Request 对象的副本。

与底层的 ReadableStream.tee API 类似,已克隆 Requestbody 将以两个 body 中速度更快的消费者的速率发出背压,未读取的数据会在较慢的已消耗 body 上在内部排队,没有任何限制或背压。当你从流构建 Request 然后克隆它时要小心。

如果请求体已经被使用过,clone() 会抛出 TypeError。事实上,clone() 存在的主要原因是允许 body 对象被多次使用(当它们只能使用一次时)。

如果你打算修改请求,可以考虑使用 Request 构造函数。

语法

js
clone()

参数

无。

返回值

一个 Request 对象,它是调用 clone()Request 的精确副本。

示例

在下面的代码片段中,我们使用 Request() 构造函数创建一个新请求(请求同一目录下的一个图像文件),然后克隆该请求。

js
const myRequest = new Request("flowers.jpg");
const newRequest = myRequest.clone(); // a copy of the request is now stored in newRequest

规范

规范
Fetch
# ref-for-dom-request-clone①

浏览器兼容性

另见