【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の基盤となるデータソースを指定します。通常はオブジェクトで、
start、pull、cancelなどのメソッドを持ちます。 - strategy: ReadableStreamの読み込み戦略を指定するオブジェクトです。
highWaterMark(バッファの最大サイズ)やtype(readableやwritableなど)を設定できます。
戻り値(return)
ReadableStream
ReadableStreamクラスのインスタンスが返されます。これは、非同期にデータを読み込むためのストリームを表します。