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 Standard # ref-for-rs-byob-request-respond① |
ブラウザーの互換性
BCD tables only load in the browser