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