Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since March 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
ReadableStreamBYOBReader はストリーム API のインターフェイスで、 ReadableStream 用のリーダーを定義します。このリーダーは、基盤となるバイトソースからのゼロコピー読み込みに対応しています。 ファイルなど、データがバイト列の「無名」シーケンスとして配信される基盤から効率的にコピーするために使用します。
このリーダー型のインスタンスは、通常、ストリーム上で ReadableStream.getReader() を呼び出して、オプション引数に mode: "byob" を指定します。 読み取り可能なストリームは、基盤バイトソースを保有していなければなりません。言い換えれば、構築時にtype: "bytes"を持つ基盤を指定されていなければなりません。
この種のリーダーを使用すると、読み取り可能なストリームの内部キューが空のときに read() リクエストを行うと、基盤となっているソースから(ストリームの内部キューをバイパスして)ゼロコピーで移譲されます。 内部キューが空でない場合、 read() はバッファーされたデータからリクエストを満たします。
メソッドとプロパティは 既定のリーダー (ReadableStreamDefaultReader) のものと似ていることに注意してください。 read() メソッドは、データを書き込むビューを提供するという点で異なります。
ReadableStreamBYOBReader オブジェクトのインスタンスを作成して返します。
ストリーミングプロセスの終了に応答するコードを記述できます。ストリームが閉じられた場合、またはリーダーのロックが解除された場合に満たすプロミスを返します。ストリームがエラーの場合は拒否します。
ストリームをキャンセルし、コンシューマーがストリームに興味を失ったことを通知します。 提供された reason 引数は、基になるソースに与えられ、使用する場合もしない場合もあります。
ReadableStreamBYOBReader.read()ストリームの内部キュー内の次のチャンクへのアクセスを提供する promise を返します。
ReadableStreamBYOBReader.releaseLock()ストリームのリーダーのロックを解除します。
以下の例は、読み取り可能なバイトストリームの使用から取ったものです。
まず、ストリーム上で ReadableStream.getReader() を使用してリーダーを作成します。 options 引数に mode: "byob" を指定します。 これは "Bring Your Own Buffer" リーダーなので、読み込むための ArrayBuffer も作成する必要があります。
リーダーを使用する関数を下記に示します。 これは read() メソッドを再帰的に呼び出して、データをバッファーに読み込みます。 このメソッドは Uint8Array 型付き配列を取り、これが これは、元の配列バッファーでまだ書き込まれていない部分のビューです。 ビューの引数は、前回呼び出された際に受け取ったデータから計算され、元配列バッファーへのオフセットを定義します。
ストリームにデータがなくなると、read()メソッドはプロパティ done を true に設定したオブジェクトで解決し、関数を返します。
ReadableStreamBYOBReader.closed プロパティはプロミスを返し、ストリームが閉じられたり、エラーとされたり、リーダーロックが解放されたりすることを監視するために使用することができます。
ストリームを取り消すには ReadableStreamBYOBReader.cancel() を呼び出します。オプションで理由を指定します。 これは、ストリームが取り消される可能性を解決するプロミスを返します。 ストリームがキャンセルされると、コントローラは次に cancel() を基盤となるソース上で呼び出します。
読み取り可能なバイトストリームの使用の例では、次のようにボタンが押されたときに cancel メソッドを呼び出します。
コンシューマーは releaseLock() を呼び出して、ストリーム上のリーダーの保持を解放することもできますが、これは読み込みが待機していない場合に限られます。
| Streams # byob-reader-class |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2023年9月26日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.