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 は移譲され、変更できなくなります。
構文
respond(bytesWritten)
引数
bytesWritten-
ReadableStreamBYOBRequest.viewに書き込まれたバイト数です。
返値
なし (undefined)。
例外
TypeError-
リクエストが関連付けられた
ReadableByteStreamControllerを持っていないか、ビューバッファーが切り離されていないか、移譲できません。
例
下記のコードは読み取り可能なバイトストリームの使用のライブ例から引用しています。
このメソッドは、コンシューマーからの待機中の読み取りリクエストを履行するために、データのゼロコピー移譲を行う一環として、基盤となるバイトソースによって呼び出されます。
基盤となるバイトソースは最初に ReadableStreamBYOBRequest.view にデータを書き込み、次にこの respond() メソッドを呼び出して、バッファーにコピーされたデータの量を示し、データをリーダーに移譲させます。
下記のコードはこの用途を示すもので、データをビューにコピーするために readInto() メソッドを使用しています。
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
controller.byobRequest.respond(bytesRead);
処理後、 byobRequest.view は切り離され、リクエストは破棄されます。
仕様書
| Specification |
|---|
| Streams> # ref-for-rs-byob-request-respond①> |
ブラウザーの互換性
Loading…