ReadableStreamDefaultController.ReadableStreamDefaultController()

ReadableStreamDefaultController() コンストラクターは、ReadableStreamDefaultController オブジェクトのインスタンスを作成して返します。

: このコンストラクターを手動で使用することはありません — これは、ReadableStream オブジェクトの構築中に使用されます。

構文

var readableStreamDefaultController = new ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark);

パラメーター

stream
制御される ReadableStream
underlyingSource
構築されたストリームインスタンスの動作を定義するメソッドとプロパティを含むオブジェクト。 詳細については、ReadableStream() コンストラクターのパラメーター定義を参照してください。
size
 パラメーター chunk を含むメソッド — これは、各チャンクに使用するサイズをバイト単位で示します。
highWaterMark
負でない整数 — これは、バックプレッシャーが適用される前に内部キューに含めることができるチャンクの総数を定義します。

戻り値

ReadableStreamDefaultController オブジェクトのインスタンス。

例外

TypeError
指定された stream パラメーターは ReadableStream ではないか、既にコントローラーが関連付けられています。

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

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

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

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

仕様

仕様 状態 コメント
Streams
ReadableStreamDefaultController() の定義
現行の標準 初期定義

ブラウザーの互換性

No compatibility data found. Please contribute data for "api.ReadableStreamDefaultController.ReadableStreamDefaultController" (depth: 1) to the MDN compatibility data repository.