ReadableByteStreamController: enqueue() メソッド
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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));
}
仕様書
| Specification |
|---|
| Streams> # ref-for-rbs-controller-enqueue①> |
ブラウザーの互換性
Loading…