Skip to content

Commit

Permalink
[zh-cn]: update the translation of Request clone() method (mdn#24777)
Browse files Browse the repository at this point in the history
Co-authored-by: A1lo <[email protected]>
  • Loading branch information
T34-active and yin1999 authored Nov 28, 2024
1 parent a37ad86 commit 6599fe9
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions files/zh-cn/web/api/request/clone/index.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
---
title: Request.clone()
title: Requestclone() 方法
slug: Web/API/Request/clone
l10n:
sourceCommit: 5045ba92ac9503b2a00ec85efae4b7d613a64b58
---

{{APIRef("Fetch")}}
{{APIRef("Fetch API")}}{{AvailableInWorkers}}

{{domxref("Request")}} 接口中的**`clone()`** 方法可以创建一个当前`Request` 对象的副本。
{{domxref("Request")}} 接口的 **`clone()`** 方法创建当前 `Request` 对象的副本。

如果响应体{{domxref("Body")}}已经被使用过,那么 `clone()` 会抛出一个 {{jsxref("TypeError")}}。实际上,`clone()` 的主要作用就是支持 {{domxref("Body")}} 对象的多次使用
与底层 {{domxref("ReadableStream.tee")}} API 类似,克隆的 `Response` 的 {{domxref("Request.body", "body")}} 会根据两个主体中消费速度更快的消费者来触发背压,且未读取的数据会在内部入队到消费速度较慢的主体中,没有任何限制或背压。从数据流构造 `Request` 并将其 `clone` 时要小心。

如果请求体已被使用,`clone()` 就会抛出 {{jsxref("TypeError")}}。实际上,`clone()` 存在的主要原因是允许主体对象的多次使用(当它们只能使用一次时)。

如果你打算修改请求,可能更倾向于使用 {{domxref("Request")}} 构造函数。

## 语法

```js
var newRequest = request.clone();
```js-nolint
clone()
```

### 参数
Expand All @@ -21,15 +27,15 @@ var newRequest = request.clone();

### 返回值

{{domxref("Request")}} 对象,也就是 `Request` 的完整拷贝
{{domxref("Request")}} 对象,它是调用了 `clone()``Request` 的完整副本。

## 示例

在下面的代码中,我们使用 {{domxref("Request.Request()")}} 构造函数创建了一个新的 request 对象 (请求当前文件夹中的一个图片文件),然后拷贝了这个 `request` 对象
在以下代码片段中,我们使用 {{domxref("Request.Request", "Request()")}} 构造函数创建了一个新的请求(请求同一目录下的一个图像文件),然后克隆了该请求

```js
var myRequest = new Request("flowers.jpg");
var newRequest = myRequest.clone(); // a copy of the request is now stored in newRequest
const myRequest = new Request("flowers.jpg");
const newRequest = myRequest.clone(); // 请求的副本现已存储在 newRequest 中。
```

## 规范
Expand All @@ -40,8 +46,8 @@ var newRequest = myRequest.clone(); // a copy of the request is now stored in ne

{{Compat}}

## 了解更多
## 参见

- [ServiceWorker API](/zh-CN/docs/Web/API/ServiceWorker_API)
- [HTTP access control (CORS)](/zh-CN/docs/Web/HTTP/Access_control_CORS)
- [Service Worker API](/zh-CN/docs/Web/API/Service_Worker_API)
- [HTTP 访问控制(CORS](/zh-CN/docs/Web/HTTP/CORS)
- [HTTP](/zh-CN/docs/Web/HTTP)

0 comments on commit 6599fe9

Please sign in to comment.