ReadableByteStreamController: enqueue() メソッド
Baseline
2026
最近利用可能
March 2026以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
enqueue() は ReadableByteStreamController で、指定されたチャンクを、関連する読み取り可能なバイトストリームのキューに入れます(チャンクはストリーム内部のキューにコピーされます)。
これは、 byobRequest が null である場合にのみ、キューへのデータ移譲に使用しましょう。
構文
js
enqueue(chunk)
引数
chunk-
キューに入れるチャンク。
返値
なし (undefined)。
例外
TypeError-
ソースオブジェクトが
ReadableByteStreamControllerではないか、何らかの理由でストリームを読み取れないか、チャンクがオブジェクトではないか、チャンクの内部配列バッファーが存在しないか、切り離されています。 ストリームが既に閉じられていたときにも発生します。
例
読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成 の例では、未処理の 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));
}
仕様書
| 仕様書 |
|---|
| Streams> # ref-for-rbs-controller-enqueue①> |