Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】WritableStreamDefaultController::WritableStreamDefaultController()関数の使い方

WritableStreamDefaultController関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

WritableStreamDefaultController関数は、Web Streams APIにおけるWritableStream(書き込み可能なストリーム)の内部的な制御を行うためのコンストラクタ関数です。この関数は、WritableStreamを実装する際に、その内部で自動的に呼び出され、ストリームの動作を管理するWritableStreamDefaultControllerオブジェクトを生成します。

生成されたコントローラーオブジェクトは、ストリームへのデータの書き込み処理、エラーの報告、およびストリームの終了(クローズ)処理を調整する役割を担います。例えば、開発者がカスタムのWritableStreamを実装する際、その内部ロジックにおいてこのコントローラーのメソッドを利用することで、ストリームにエラー状態を通知したり、ストリームの終了シグナルを監視したりすることができます。

具体的には、controller.error(reason)メソッドを使用してストリームにエラーを伝達し、後続の書き込み操作を停止させることが可能です。また、controller.signalプロパティを通じてAbortSignalを取得し、ストリームの書き込み処理が中断された場合にクリーンアップ操作を行うことができます。

通常、システムエンジニアがこの関数を直接呼び出してインスタンスを生成することはなく、WritableStreamの内部で透過的に利用されることで、非同期のデータ書き込み操作を効率的かつ堅牢に管理する基盤を提供します。これにより、開発者はストリームの複雑な内部状態管理を意識することなく、データの書き込みロジックに集中できるよう設計されています。

構文(syntax)

1new WritableStream({
2  write(chunk, controller) {
3    controller.error(new Error('Custom write error.'));
4  }
5});

引数(parameters)

stream, underlyingSink, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, bypassControlSink

  • stream: WritableStream: 制御対象となるWritableStreamインスタンス
  • underlyingSink: UnderlyingSink: ストリームの底層でデータの書き込みやクローズなどを担当するオブジェクト
  • startAlgorithm: () => Promise<void>: ストリームの開始時に実行される非同期関数
  • writeAlgorithm: (chunk: any) => Promise<void>: ストリームにデータ(chunk)が書き込まれる際に実行される非同期関数
  • closeAlgorithm: () => Promise<void>: ストリームがクローズされる際に実行される非同期関数
  • abortAlgorithm: (reason: any) => Promise<void>: ストリームがアボート(中断)される際に実行される非同期関数
  • bypassControlSink: boolean: (省略可能)trueに設定すると、ストリームの制御をバイパスします

戻り値(return)

WritableStreamDefaultController

WritableStreamDefaultController は、新しい WritableStreamDefaultController インスタンスを生成します。このインスタンスは、書き込み可能なストリームのデフォルトコントローラーとして機能します。

関連コンテンツ