ReadableStreamBYOBRequest: respond() メソッド
Baseline
2026
最近利用可能
March 2026以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
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 は切り離され、リクエストは破棄されます。
仕様書
| 仕様書 |
|---|
| Streams> # ref-for-rs-byob-request-respond①> |