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

【Node.js24.x】Object::ReadableStream()メソッドの使い方

ReadableStreamメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

ReadableStreamメソッドは、データソースから非同期的にデータを読み出すための仕組みを定義し、実行するためのメソッドです。このメソッドは、Web標準のStreams APIに準拠しており、ファイルシステムからの読み込みや、HTTPレスポンス、WebSocketからのデータ取得など、連続的に発生するデータの流れを効率的に処理するために使用されます。

大量のデータを扱う際、ReadableStreamメソッドはデータを小さな塊(チャンク)として順次処理することで、一度にすべてをメモリに読み込む必要がなくなり、メモリ使用量を最適化します。これにより、アプリケーションの応答性を維持し、効率的なデータ処理を実現します。データを消費するためのリーダーの取得(getReader())や、別のストリームへの接続(pipeTo())といった機能も提供されており、データの流れを柔軟に制御することが可能です。システムエンジニアを目指す方にとって、非同期データ処理の基本として理解しておくべき重要な概念の一つです。

構文(syntax)

new ReadableStream({
  start(controller) {
    // ストリームが開始された際に一度だけ実行されます。
    // controller.enqueue(チャンク) を使用してデータをストリームに追加します。
    // controller.close() を呼び出すと、ストリームが終了したことを通知します。
    // controller.error(理由) を呼び出すと、ストリームでエラーが発生したことを通知します。
  },
  pull(controller) {
    // ストリームがさらにデータを要求したときに実行されます。
    // ここで非同期処理を行い、controller.enqueue() でデータを供給できます。
  },
  cancel(reason) {
    // ストリームがキャンセルされたときに実行されます。
    // 開いているリソース(ファイルハンドルなど)をここでクリーンアップします。
  }
});

引数(parameters)

underlyingSource = undefined, strategy = undefined

  • underlyingSource: ReadableStreamの基盤となるデータソースを指定します。通常はオブジェクトで、startpullcancelなどのメソッドを持ちます。
  • strategy: ReadableStreamの読み込み戦略を指定するオブジェクトです。highWaterMark(バッファの最大サイズ)やtypereadablewritableなど)を設定できます。

戻り値(return)

ReadableStream

ReadableStreamクラスのインスタンスが返されます。これは、非同期にデータを読み込むためのストリームを表します。

関連コンテンツ

関連プログラミング言語