このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
ReadableByteStreamController: byobRequest プロパティ
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
byobRequest は ReadableByteStreamController インターフェイスの読み取り専用プロパティで、現在の BYOB リクエストを返します。保留中のリクエストがない場合は null を返します。
基盤となるバイトソースはこのプロパティを調べ、存在する場合はそれを使用してストリームにデータを書き込む必要があります(ReadableByteStreamController.enqueue()を使用するのではなく)。
こうすることで、コンシューマーへのデータの効率的なゼロバイト移譲が実現します。
値
ReadableStreamBYOBRequest オブジェクトのインスタンス、または null。
例
読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成の例では、 byobRequest を使用して(データが存在する場合は)データを移譲するか、 ReadableByteStreamController.enqueue() を使用してストリーム内部のキューにデータをコピーする方法を示しています。
関連するコードを下記に示します。
byobRequest が存在すれば、 controller.byobRequest.view にデータが読み込まれ、 ReadableStreamBYOBRequest.respond() が呼び出されて、移譲可能なデータ量を指示します。
if (controller.byobRequest) {
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
controller.close();
}
controller.byobRequest.respond(bytesRead);
} else {
// Write to data using enqueue().
}
仕様書
| Specification |
|---|
| Streams> # ref-for-rbs-controller-byob-request2> |
ブラウザーの互換性
Loading...