ReadableStreamDefaultController

ReadableStreamDefaultControllerストリーム API のインターフェイスで、ReadableStream の状態と内部キューを制御できるコントローラーを表します。既定のコントローラーは、バイトストリームではないストリーム用のものです。

コンストラクター

なし。 ReadableStreamDefaultController インスタンスは、ReadableStream の構築中に自動的に作成されます。

インスタンスプロパティ

ReadableStreamDefaultController.desiredSize 読取専用

ストリームの内部キューを満たすために必要な希望サイズを返します。

インスタンスメソッド

ReadableStreamDefaultController.close()

関連するストリームを閉じます。

ReadableStreamDefaultController.enqueue()

所与のチャンクを関連するストリームのキューに入れます。

ReadableStreamDefaultController.error()

関連するストリームとの今後のやり取りでエラーを発生させます。

次の単純な例では、コンストラクターを使用してカスタムの ReadableStream を作成します(完全なコードについては、単純なランダムストリームの例を参照)。 start() 関数は、1 秒ごとにテキストのランダムな文字列を生成し、それをストリームのキューに入れます。 ReadableStream.cancel() が何らかの理由で呼び出された場合、生成を停止するための cancel() 関数も提供します。

ReadableStreamDefaultController オブジェクトは、 start() 関数および pull() 関数の引数として提供されることに注意してください。

ボタンが押されると、生成を停止し、 ReadableStreamDefaultController.close() を使用してストリームを閉じ、ストリームからデータを読み取る別の関数を実行します。

js
let interval;
const stream = new ReadableStream({
  start(controller) {
    interval = setInterval(() => {
      let string = randomChars();

      // ストリームに文字列を追加
      controller.enqueue(string);

      // それを画面に表示
      let listItem = document.createElement("li");
      listItem.textContent = string;
      list1.appendChild(listItem);
    }, 1000);

    button.addEventListener("click", () => {
      clearInterval(interval);
      fetchStream();
      controller.close();
    });
  },
  pull(controller) {
    // この例では実際には pull は必要ありません
  },
  cancel() {
    // リーダーがキャンセルされた場合に呼び出されるため、
    // 文字列の生成を停止する必要があります
    clearInterval(interval);
  },
});

仕様書

Specification
Streams
# rs-default-controller-class

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
ReadableStreamDefaultController
close
desiredSize
enqueue
error

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
Has more compatibility info.

関連情報