ReadableStreamBYOBRequest: respond() メソッド

Limited availability

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

respond()ReadableStreamBYOBRequest インターフェイスのメソッドで、 ReadableStreamBYOBRequest.view に指定したバイト数が書き込まれたことを、関連する読み取り可能なバイトストリームに通知するために用いられます。

このメソッドが呼び出された後、 view は移譲され、変更できなくなります。

構文

js
respond(bytesWritten)

引数

bytesWritten

ReadableStreamBYOBRequest.view に書き込まれたバイト数です。

返値

なし (undefined)。

例外

TypeError

リクエストが関連付けられた ReadableByteStreamController を持っていないか、ビューバッファーが切り離されていないか、移譲できません。

下記のコードは読み取り可能なバイトストリームの使用のライブ例から引用しています。

このメソッドは、コンシューマーからの待機中の読み取りリクエストを履行するために、データのゼロコピー移譲を行う一環として、基盤となるバイトソースによって呼び出されます。 基盤となるバイトソースは最初に ReadableStreamBYOBRequest.view にデータを書き込み、次にこの respond() メソッドを呼び出して、バッファーにコピーされたデータの量を示し、データをリーダーに移譲させます。

下記のコードはこの用途を示すもので、データをビューにコピーするために readInto() メソッドを使用しています。

js
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
controller.byobRequest.respond(bytesRead);

処理後、 byobRequest.view は切り離され、リクエストは破棄されます。

仕様書

Specification
Streams Standard
# ref-for-rs-byob-request-respond①

ブラウザーの互換性

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
respond

Legend

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

Full support
Full support
No support
No support

関連情報