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

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

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

作成日: 更新日:

基本的な使い方

composeメソッドは、複数のNode.jsストリームを組み合わせて、単一の新しいストリームを作成するメソッドです。このメソッドは、データの流れを順序立てて処理したい場合に非常に役立ちます。たとえば、あるデータソースからデータを読み込み、それを変換ストリームで加工し、さらに別のストリームでフィルタリングするといった、一連の連続した処理を抽象化して記述できます。

composeメソッドを使用することで、個々のストリームを直接パイプで接続するよりも、より宣言的かつ簡潔にストリームパイプラインを構築することが可能です。内部的には、引数として渡された複数のストリームが順番に接続され、最初のストリームからの出力が次のストリームの入力となり、最終的に一つの統合されたストリームとして振る舞います。

特に重要な点として、このメソッドによって合成されたストリームは、自動的にエラーを伝播させ、パイプライン内のすべてのストリームが適切に終了するようにリソースのクリーンアップを行います。これにより、複雑なストリーム処理において発生しがちなエラーハンドリングやリソース管理の負担が大幅に軽減され、より堅牢で信頼性の高いデータ処理ロジックを構築できます。システムエンジニアを目指す方にとって、composeメソッドは、見通しが良く、保守しやすいストリームベースのアプリケーションを開発するための強力なツールとなるでしょう。

構文(syntax)

1import { Stream, Transform } from 'node:stream';
2
3// 複数の変換ストリームや関数を準備します
4const transformStreamA = new Transform({
5  transform(chunk, encoding, callback) {
6    this.push(chunk.toString().toUpperCase());
7    callback();
8  }
9});
10
11const transformStreamB = new Transform({
12  transform(chunk, encoding, callback) {
13    this.push(`PREFIX_${chunk.toString()}`);
14    callback();
15  }
16});
17
18// Stream.compose の構文
19const composedStream = Stream.compose(transformStreamA, transformStreamB);

引数(parameters)

...streams

  • streams: Stream: 連結するストリームの配列

戻り値(return)

Stream

Stream.compose()メソッドは、複数のStreamを順番に連結した新しいStreamを返します。この新しいStreamは、入力Streamのデータが順次処理され、最終的な出力Streamに流れていくように動作します。

関連コンテンツ