ReadableStreamDefaultReader
Streams API の ReadableStreamDefaultReader
インターフェイスは、ネットワークから提供されたストリームデータ(フェッチ要求など)を読み取るために使用できるデフォルトのリーダーを表します。
コンストラクター
ReadableStreamDefaultReader()
-
ReadableStreamDefaultReader
オブジェクトのインスタンスを作成して返します。
プロパティ
ReadableStreamDefaultReader.closed
読取専用-
ストリーミングプロセスの終了に応答するコードを記述できます。 ストリームが閉じられた場合、またはリーダーのロックが解除された場合に満たされる promise を返します。 ストリームがエラーの場合は拒否します。
メソッド
ReadableStreamDefaultReader.cancel()
-
ストリームをキャンセルし、コンシューマーがストリームに興味を失ったことを通知します。 提供された reason 引数は、基になるソースに与えられ、使用する場合もしない場合もあります。
ReadableStreamDefaultReader.read()
-
ストリームの内部キュー内の次のチャンクへのアクセスを提供する promise を返します。
ReadableStreamDefaultReader.releaseLock()
-
ストリームのリーダーのロックを解除します。
例
次の例では、別のリソースから取得した HTML の断片をブラウザーにストリーミングするために、人工的な Response
を作成します。
これは Uint8Array
と組み合わせた ReadableStream
の使用方法を示します。
js
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 Standard # default-reader-class |
ブラウザーの互換性
BCD tables only load in the browser