ReadableStreamDefaultController
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月.
ReadableStreamDefaultController
はストリーム API のインターフェイスで、ReadableStream
の状態と内部キューを制御できるコントローラーを表します。既定のコントローラーは、バイトストリームではないストリーム用のものです。
コンストラクター
なし。 ReadableStreamDefaultController
インスタンスは、ReadableStream
の構築中に自動的に作成されます。
インスタンスプロパティ
ReadableStreamDefaultController.desiredSize
読取専用-
ストリームの内部キューを満たすために必要な希望サイズを返します。
インスタンスメソッド
ReadableStreamDefaultController.close()
-
関連するストリームを閉じます。
ReadableStreamDefaultController.enqueue()
-
所与のチャンクを関連するストリームのキューに入れます。
ReadableStreamDefaultController.error()
-
関連するストリームとの今後のやり取りでエラーを発生させます。
例
次の単純な例では、コンストラクターを使用してカスタムの ReadableStream
を作成します(完全なコードについては、単純なランダムストリームの例を参照)。 start()
関数は、1 秒ごとにテキストのランダムな文字列を生成し、それをストリームのキューに入れます。 ReadableStream.cancel()
が何らかの理由で呼び出された場合、生成を停止するための cancel()
関数も提供します。
ReadableStreamDefaultController
オブジェクトは、 start()
関数および pull()
関数の引数として提供されることに注意してください。
ボタンが押されると、生成を停止し、 ReadableStreamDefaultController.close()
を使用してストリームを閉じ、ストリームからデータを読み取る別の関数を実行します。
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> |
ブラウザーの互換性
Loading…
関連情報
- ストリーム API の概念
- 読み取り可能なストリームの使用
ReadableStream
- WHATWG Stream Visualizer, for a basic visualization of readable, writable, and transform streams.
- Web-streams-polyfill or sd-streams - polyfills