ReadableStreamDefaultReader
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
* Some parts of this feature may have varying levels of support.
ReadableStreamDefaultReader はストリーム API のインターフェイスで、ネットワークから提供されたストリームデータ(フェッチリクエストなど)を読み取るために使用できる既定のリーダーを表します。
ReadableStreamDefaultReader は、任意の種類の基盤ソースを持つ ReadableStream からの読み取りに使用することができます(基盤バイトソースを持つ読み取り可能なストリームにのみ使用することができる ReadableStreamBYOBReader とは異なります)。
ただし、基盤ソースからのゼロコピー移譲は、バッファーを自動割り当てするバイトソースにのみ対応していることに注意してください。
言い換えれば、ストリームは構築時に、type="bytes" と autoAllocateChunkSize の両方が指定されたものでなければなりません。他にも基盤ソースがある場合、ストリームは常に内部キューからのデータで読み取りリクエストを満たします。
コンストラクター
ReadableStreamDefaultReader()-
ReadableStreamDefaultReaderオブジェクトのインスタンスを作成して返します。
インスタンスプロパティ
ReadableStreamDefaultReader.closed読取専用-
ストリーミングプロセスの終了に応答するコードを記述できます。 ストリームが閉じられた場合、またはリーダーのロックが解除された場合に履行されるプロミスを返します。 ストリームがエラーの場合は拒否されます。
インスタンスメソッド
ReadableStreamDefaultReader.cancel()-
ストリームをキャンセルし、コンシューマーがストリームに興味を失ったことを通知します。 提供された引数
reasonは、基盤ソースに与えられ、使用する場合もしない場合もあります。 ReadableStreamDefaultReader.read()-
ストリームの内部キュー内の次のチャンクへのアクセスを提供するプロミスを返します。
ReadableStreamDefaultReader.releaseLock()-
ストリームのリーダーのロックを解除します。
例
次の例では、別のリソースから取得した HTML の断片をブラウザーにストリーミングするために、人工的な Response を作成します。
これは Uint8Array と組み合わせた ReadableStream の使用方法を示します。
fetch("https://www.example.org/").then((response) => {
const reader = response.body.getReader();
const stream = new ReadableStream({
start(controller) {
// 次の関数は各データチャンクを処理します
function push() {
// done は Boolean で、value は Uint8Array です
return reader.read().then(({ done, value }) => {
// 読み取るデータはもうありませんか?
if (done) {
// データの送信が完了したことをブラウザーに伝えます
controller.close();
return;
}
// データを取得し、コントローラー経由でブラウザーに送信します
controller.enqueue(value);
push();
});
}
push();
},
});
return new Response(stream, { headers: { "Content-Type": "text/html" } });
});
仕様書
| Specification |
|---|
| Streams> # default-reader-class> |
ブラウザーの互換性
Loading…
関r根情報
- ストリーム API の概念
- 読み取り可能なストリームの使用
ReadableStream- WHATWG Stream Visualizer, for a basic visualization of readable, writable, and transform streams.
- Web-streams-polyfill or sd-streams - polyfills