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

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

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

作成日: 更新日:

基本的な使い方

isDisturbedメソッドは、Node.jsのStreamモジュールに属し、特定のストリームインスタンスが「消費された」状態にあるかどうかを判定するメソッドです。このメソッドは、主に読み込み可能なストリームであるReadableストリームの現在の状態を把握するために利用されます。

ストリームが「消費された」状態とは、一度でもストリームからデータが読み取られたり、ストリームがクローズされたり、エラーが発生したりした場合を指します。より具体的には、stream.pipe()メソッドによる別のストリームへのパイプ処理、for await...of構文による非同期イテレーション、あるいはstream.read()メソッドによる手動でのデータ読み取りなど、ストリームからデータが取り出される操作が行われた後にisDisturbed()を呼び出すとtrueを返します。これらの操作は、ストリームが既に何らかの形で利用され、内部バッファのデータが消費されたことを意味します。

このメソッドの主な目的は、ストリームが既に利用され始めているかどうかを示すことで、開発者がストリームを誤って再利用したり、データが既に失われている可能性のあるストリームに対して不適切な操作を行ったりするのを防ぐことです。例えば、一度消費されたReadableストリームを再び別の場所にパイプしようとすると、期待する結果が得られない可能性があるため、isDisturbedメソッドでその状態を事前に確認できます。これは、ストリームの適切なライフサイクル管理を支援する重要なツールであり、ストリームが消費されていればtrue、そうでなければfalseを返します。

構文(syntax)

1const stream = require('node:stream');
2const myStreamInstance = new stream.Readable({ read() {} });
3
4const isStreamDisturbed = stream.isDisturbed(myStreamInstance);

引数(parameters)

stream

  • stream: Stream: チェック対象のStreamオブジェクト

戻り値(return)

boolean

このメソッドは、ストリームが内部状態の変更を伴う操作(例えば、データ読み取りや書き込み)によって「妨げられている」かどうかを示す真偽値を返します。

関連コンテンツ