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 类似,克隆的 Responsebody 会根据两个主体中消费速度更快的消费者来触发背压,且未读取的数据会在内部入队到消费速度较慢的主体中,没有任何限制或背压。从数据流构造 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

参见