【Node.js24.x】ReadableStreamDefaultController::ReadableStreamDefaultController()関数の使い方
ReadableStreamDefaultController関数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
ReadableStreamDefaultController関数は、Node.jsにおけるReadableStream(読み取り可能なストリーム)の内部的な動作を制御するために使用される関数です。この関数は、ReadableStreamを生成する際に内部で呼び出され、ストリームのデータ供給源(プロデューサー)がストリームの状態を管理するためのコントローラーオブジェクトを提供します。
具体的には、ReadableStreamDefaultControllerのインスタンスを通じて、ストリームに新しいデータを追加するenqueue()メソッド、ストリームの読み取りを正常に終了させるclose()メソッド、およびストリームで発生したエラーを報告するerror()メソッドを利用できます。開発者は、ReadableStreamのコンストラクタに渡すstartメソッドやpullメソッドのコールバック関数内で、このコントローラーオブジェクトを引数として受け取ります。そして、受け取ったコントローラーオブジェクトのメソッドを呼び出すことで、非同期のデータソースから生成されたデータをストリームに供給したり、データの供給が完了したことやエラーが発生したことをストリームに通知したりします。
このコントローラーは、ストリームのデータの流れを効率的に管理し、消費側がデータを処理できる量に応じて供給側が調整を行うバックプレッシャーなどの仕組みを実装する上で重要な役割を果たします。これにより、システム全体のパフォーマンスと安定性を保ちながら、柔軟なデータストリーム処理を実現します。
構文(syntax)
1new ReadableStream({ 2 start(controller) { 3 controller.enqueue('data'); 4 controller.close(); 5 } 6});
引数(parameters)
stream, underlyingSource, pullAlgorithm, cancelAlgorithm, highWaterMark, strategy
- stream: ReadableStream: このコントローラーが制御するReadableStreamインスタンス
- underlyingSource: ReadableStreamDefaultReader | ReadableStreamSource: ストリームの基盤となるソースオブジェクト。リソースの生成や解放を担当します。
- pullAlgorithm: (controller: ReadableStreamDefaultController) => Promise<void> | undefined: チャンクの供給を要求されたときに実行される非同期関数。
controller.enqueue()でチャンクを追加します。 - cancelAlgorithm: (reason: any) => Promise<void> | undefined: ストリームがキャンセルされたときに実行される非同期関数。
- highWaterMark: number: ストリームが「高水位」状態と見なされるための、チャンクの総容量または数。
- strategy: QueuingStrategy: チャンクのキューイング戦略を定義するオブジェクト。
戻り値(return)
戻り値なし
戻り値はありません