このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ReadableStreamDefaultReader

Baseline
広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。

ReadableStreamDefaultReader はストリーム API のインターフェイスで、ネットワークから提供されたストリームデータ(フェッチリクエストなど)を読み取るために使用できる既定のリーダーを表します。

ReadableStreamDefaultReader は、任意の種類の基盤ソースを持つ ReadableStream からの読み取りに使用することができます(基盤バイトソースを持つ読み取り可能なストリームにのみ使用することができる ReadableStreamBYOBReader とは異なります)。

ただし、基盤ソースからのゼロコピー移譲は、バッファーを自動割り当てするバイトソースにのみ対応していることに注意してください。 言い換えれば、ストリームは構築時に、type="bytes" と autoAllocateChunkSize の両方が指定されたものでなければなりません。他にも基盤ソースがある場合、ストリームは常に内部キューからのデータで読み取りリクエストを満たします。

コンストラクター

ReadableStreamDefaultReader()

ReadableStreamDefaultReader オブジェクトのインスタンスを作成して返します。

インスタンスプロパティ

ReadableStreamDefaultReader.closed 読取専用

ストリーミングプロセスの終了に応答するコードを記述できます。 ストリームが閉じられた場合、またはリーダーのロックが解除された場合に履行されるプロミスを返します。 ストリームがエラーの場合は拒否されます。

インスタンスメソッド

ReadableStreamDefaultReader.cancel()

ストリームをキャンセルし、コンシューマーがストリームに興味を失ったことを通知します。 提供された引数 reason は、基盤ソースに与えられ、使用する場合もしない場合もあります。

ReadableStreamDefaultReader.read()

ストリームの内部キュー内の次のチャンクへのアクセスを提供するプロミスを返します。

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" } });
});

仕様書

仕様書
Streams
# default-reader-class

ブラウザーの互換性

関r根情報