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
# ref-for-dom-request-clone①

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
clone

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见