-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
172 additions
and
61 deletions.
There are no files selected for viewing
45 changes: 33 additions & 12 deletions
45
files/ja/web/api/readablebytestreamcontroller/byobrequest/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,51 @@ | ||
--- | ||
title: ReadableByteStreamController.byobRequest | ||
title: "ReadableByteStreamController: byobRequest プロパティ" | ||
short-title: byobRequest | ||
slug: Web/API/ReadableByteStreamController/byobRequest | ||
l10n: | ||
sourceCommit: d41c5446d4ef257280fae9b78e2298ced8954a95 | ||
--- | ||
|
||
{{SeeCompatTable}}{{APIRef("Streams")}} | ||
{{APIRef("Streams")}} | ||
|
||
{{domxref("ReadableByteStreamController")}} インターフェイスの **`byobRequest`** 読み取り専用プロパティは、現在の BYOB プルリクエストを返します。 保留中のリクエストがない場合は `undefined` を返します。 | ||
**`byobRequest`** は {{domxref("ReadableByteStreamController")}} インターフェイスの読み取り専用プロパティで、現在の BYOB リクエストを返します。保留中のリクエストがない場合は `null` を返します。 | ||
|
||
## 構文 | ||
|
||
``` | ||
var request = readableByteStreamController.byobRequest; | ||
``` | ||
基盤となるバイトソースはこのプロパティを調べ、存在する場合はそれを使用してストリームにデータを書き込む必要があります({{domxref("ReadableByteStreamController.enqueue()")}}を使用するのではなく)。 | ||
こうすることで、コンシューマーへのデータの効率的なゼロバイト移譲が実現します。 | ||
|
||
### 値 | ||
|
||
{{domxref("ReadableStreamBYOBRequest")}} オブジェクトのインスタンス、または `undefined`。 | ||
{{domxref("ReadableStreamBYOBRequest")}} オブジェクトのインスタンス、または `null`。 | ||
|
||
## 例 | ||
|
||
未定。 | ||
[読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams#読み取り可能なソケットプッシュバイトストリームの作成)の例では、 `byobRequest` を使用して(データが存在する場合は)データを移譲するか、 {{domxref("ReadableByteStreamController.enqueue()")}} を使用してストリーム内部のキューにデータをコピーする方法を示しています。 | ||
|
||
関連するコードを下記に示します。 | ||
`byobRequest` が存在すれば、 {{domxref("ReadableStreamBYOBRequest.view","controller.byobRequest.view")}} にデータが読み込まれ、 {{domxref("ReadableStreamBYOBRequest.respond()")}} が呼び出されて、移譲可能なデータ量を指示します。 | ||
|
||
```js | ||
if (controller.byobRequest) { | ||
const v = controller.byobRequest.view; | ||
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength); | ||
if (bytesRead === 0) { | ||
controller.close(); | ||
} | ||
controller.byobRequest.respond(bytesRead); | ||
} else { | ||
// Write to data using enqueue(). | ||
} | ||
``` | ||
|
||
## 仕様 | ||
## 仕様書 | ||
|
||
{{Specifications}} | ||
|
||
## ブラウザーの互換性 | ||
|
||
{{Compat("api.ReadableByteStreamController.byobRequest")}} | ||
{{Compat}} | ||
|
||
## 関連情報 | ||
|
||
- [読み取り可能なバイトストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams) | ||
- {{domxref("ReadableByteStreamController")}} |
50 changes: 37 additions & 13 deletions
50
files/ja/web/api/readablebytestreamcontroller/close/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,65 @@ | ||
--- | ||
title: ReadableByteStreamController.close() | ||
title: "ReadableByteStreamController: close() メソッド" | ||
short-title: close() | ||
slug: Web/API/ReadableByteStreamController/close | ||
l10n: | ||
sourceCommit: dcce943de1c2fa0f6a82de3c90bc98285f27ed6f | ||
--- | ||
|
||
{{SeeCompatTable}}{{APIRef("Streams")}} | ||
{{APIRef("Streams")}} | ||
|
||
{{domxref("ReadableByteStreamController")}} インターフェイスの **`close()`** メソッドは、関連するストリームを閉じます。 | ||
**`close()`** は {{domxref("ReadableByteStreamController")}} インターフェイスのメソッドで、関連するストリームを閉じます。 | ||
|
||
> **メモ:** リーダーは、以前にキューに入れられたチャンクをストリームから読み取ることができますが、それらを読み取とってしまうとストリームは閉じられます。 | ||
これは、そのデータソースが使い果たされたとき/完全に完了したときに、基盤ソースによって呼び出される可能性があります。 | ||
|
||
> **メモ:** リーダーは、以前にキューに入れられたチャンクをストリームから読み取ることができますが、それらを読み取ってしまうとストリームは閉じられます。 | ||
> しかし、 `close()` が呼び出されたときに、未処理で部分的に書き込まれた {{domxref("ReadableByteStreamController.byobRequest","byobRequest")}} がある場合、ストリームはエラーになります。 | ||
## 構文 | ||
|
||
``` | ||
readableByteStreamController.close(); | ||
```js-nolint | ||
close() | ||
``` | ||
|
||
### パラメーター | ||
### 引数 | ||
|
||
なし。 | ||
|
||
### 戻り値 | ||
### 返値 | ||
|
||
`undefined`。 | ||
なし ({{jsxref("undefined")}})。 | ||
|
||
### 例外 | ||
|
||
- TypeError | ||
- {{jsxref("TypeError")}} | ||
- : ソースオブジェクトが `ReadableByteStreamController` ではないか、何らかの理由でストリームが読み取り可能ではありません。 | ||
|
||
## 例 | ||
|
||
未定。 | ||
[読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams#読み取り可能なソケットプッシュバイトストリームの作成)の例で、データがなくなったときにストリームを閉じています。 | ||
|
||
関連するコードを下記に示します。 | ||
これは `readInto()` メソッドがデータがまだないときだけ 0 バイトを返すと仮定しています。 | ||
|
||
```js | ||
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength); | ||
if (bytesRead === 0) { | ||
controller.close(); | ||
} | ||
``` | ||
|
||
closeを呼び出すと、ストリームは閉じられ、コンシューマーがあれば通知されます。 | ||
例えば {{domxref("ReadableStreamBYOBReader")}} を使用している場合、 {{domxref("ReadableStreamBYOBReader.read()","read()")}} リクエストは `done: true` で解決され、 {{domxref("ReadableStreamBYOBReader.closed")}} からのプロミスも解決されます。 | ||
|
||
## 仕様 | ||
## 仕様書 | ||
|
||
{{Specifications}} | ||
|
||
## ブラウザーの互換性 | ||
|
||
{{Compat("api.ReadableByteStreamController.close")}} | ||
{{Compat}} | ||
|
||
## 関連情報 | ||
|
||
- [読み取り可能なバイトストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams) | ||
- {{domxref("ReadableByteStreamController")}} |
35 changes: 23 additions & 12 deletions
35
files/ja/web/api/readablebytestreamcontroller/desiredsize/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,41 @@ | ||
--- | ||
title: ReadableByteStreamController.desiredSize | ||
title: "ReadableByteStreamController: desiredSize プロパティ" | ||
short-title: desiredSize | ||
slug: Web/API/ReadableByteStreamController/desiredSize | ||
l10n: | ||
sourceCommit: dcce943de1c2fa0f6a82de3c90bc98285f27ed6f | ||
--- | ||
|
||
{{SeeCompatTable}}{{APIRef("Streams")}} | ||
{{APIRef("Streams")}} | ||
|
||
{{domxref("ReadableByteStreamController")}} インターフェイスの **`desiredSize`** 読み取り専用プロパティは、ストリームの内部キューを満たすために必要な希望サイズを返します。 | ||
**`desiredSize`** は {{domxref("ReadableByteStreamController")}} インターフェイスの読み取り専用プロパティで、ストリームの内部キューを満たすために必要な「希望サイズ」を返します。 | ||
|
||
## 構文 | ||
この値は、ストリームが、基盤となるソースへの推奨する流量を示すために使用します。 | ||
データ流入のスロットリングや一時停止に対応しているソース(すべてではありません)は、ストリームバッファの `desiredSize` が正の値で、使用可能な限りゼロに近づくように流入を制御する必要があります。 | ||
|
||
``` | ||
var desiredSize = readableByteStreamController.desiredSize; | ||
``` | ||
`desiredSize` は下流コンシューマーの[背圧](/ja/docs/Web/API/Streams_API/Concepts#背圧)を適用するために使用します。 | ||
|
||
### 値 | ||
## 値 | ||
|
||
整数。 キューがいっぱいになった場合、これは負になる可能性があることに注意してください。 | ||
整数です。キューがいっぱいになった場合、これは負になる可能性があることに注意してください。 | ||
|
||
ストリームがエラーになったときは `null`、閉じられていたときは `0` になる可能性があります。 | ||
|
||
## 例 | ||
|
||
未定。 | ||
仕様書の [A readable stream with an underlying push source and backpressure support](https://streams.spec.whatwg.org/#example-rs-push-backpressure) の例には、ストリームが一杯になったことを手動で検出して背圧をかけるために `desiredSize` を使用する良い例が示されています。 | ||
|
||
この例では既定のソースを使用していますが、概念は読み取り可能なバイトソースとまったく同じです。 | ||
|
||
## 仕様 | ||
## 仕様書 | ||
|
||
{{Specifications}} | ||
|
||
## ブラウザーの互換性 | ||
|
||
{{Compat("api.ReadableByteStreamController.desiredSize")}} | ||
{{Compat}} | ||
|
||
## 関連情報 | ||
|
||
- [読み取り可能なバイトストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams) | ||
- {{domxref("ReadableByteStreamController")}} |
50 changes: 37 additions & 13 deletions
50
files/ja/web/api/readablebytestreamcontroller/enqueue/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,64 @@ | ||
--- | ||
title: ReadableByteStreamController.enqueue() | ||
title: "ReadableByteStreamController: enqueue() メソッド" | ||
short-title: enqueue() | ||
slug: Web/API/ReadableByteStreamController/enqueue | ||
l10n: | ||
sourceCommit: d41c5446d4ef257280fae9b78e2298ced8954a95 | ||
--- | ||
|
||
{{SeeCompatTable}}{{APIRef("Streams")}} | ||
{{APIRef("Streams")}} | ||
|
||
{{domxref("ReadableByteStreamController")}} インターフェイスの **`enqueue()`** メソッドは、所与のチャンクを関連するストリームのキューに入れます。 | ||
**`enqueue()`** は {{domxref("ReadableByteStreamController")}} で、指定された塊を、関連する読み取り可能なバイトストリームのキューに入れます(塊はストリーム内部のキューにコピーされます)。 | ||
|
||
これは、 {{domxref("ReadableByteStreamController.byobRequest","byobRequest")}} が `null` である場合にのみ、キューへのデータ移譲に使用しましょう。 | ||
|
||
## 構文 | ||
|
||
``` | ||
readableByteStreamController.enqueue(chunk); | ||
```js-nolint | ||
enqueue(chunk) | ||
``` | ||
|
||
### パラメーター | ||
### 引数 | ||
|
||
- _chunk_ | ||
- `chunk` | ||
- : キューに入れるチャンク。 | ||
|
||
### 戻り値 | ||
### 返値 | ||
|
||
`undefined`。 | ||
なし ({{jsxref("undefined")}})。 | ||
|
||
### 例外 | ||
|
||
- TypeError | ||
- {{jsxref("TypeError")}} | ||
- : ソースオブジェクトが `ReadableByteStreamController` ではないか、何らかの理由でストリームを読み取れないか、チャンクがオブジェクトではないか、チャンクの内部配列バッファーが存在しないか、切り離されています。 | ||
ストリームが既に閉じられていたときにも発生します。 | ||
|
||
## 例 | ||
|
||
未定。 | ||
[読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams#読み取り可能なソケットプッシュバイトストリームの作成) の例では、未処理の {{domxref("ReadableByteStreamController.byobRequest","byobRequest")}} がない場合に `enqueue()` を使用してデータをストリームにコピーする方法を示します。 | ||
もし `byobRequest` があれば、それを使用しましょう。 | ||
|
||
## 仕様 | ||
下記のコードでは、「仮定の」 `socket.readInto()` メソッドを使用してデータを `ArrayBuffer` に読み込ませ、その後キューに入れています(ただし、実際にデータがコピーされた場合のみ)。 | ||
|
||
```js | ||
const buffer = new ArrayBuffer(DEFAULT_CHUNK_SIZE); | ||
bytesRead = socket.readInto(buffer, 0, DEFAULT_CHUNK_SIZE); | ||
if (bytesRead === 0) { | ||
controller.close(); | ||
} else { | ||
controller.enqueue(new Uint8Array(buffer, 0, bytesRead)); | ||
} | ||
``` | ||
|
||
## 仕様書 | ||
|
||
{{Specifications}} | ||
|
||
## ブラウザーの互換性 | ||
|
||
{{Compat("api.ReadableByteStreamController.enqueue")}} | ||
{{Compat}} | ||
|
||
## 関連情報 | ||
|
||
- [読み取り可能なバイトストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_byte_streams) | ||
- {{domxref("ReadableByteStreamController")}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters