ReadableByteStreamController: enqueue() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

enqueue()ReadableByteStreamController で、指定されたチャンクを、関連する読み取り可能なバイトストリームのキューに入れます(チャンクはストリーム内部のキューにコピーされます)。

これは、 byobRequestnull である場合にのみ、キューへのデータ移譲に使用しましょう。

構文

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①

ブラウザーの互換性

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
enqueue

Legend

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

Full support
Full support
No support
No support

関連情報