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

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

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

作成日: 更新日:

基本的な使い方

addAbortSignalメソッドは、Node.jsのStreamクラスに属し、特定のストリーム操作をキャンセルするために使用されるメソッドです。このメソッドは、AbortSignalオブジェクトを引数として受け取ります。AbortSignalは、Web標準のAbortControllerによって生成されるオブジェクトで、非同期操作を中止するためのシグナルを管理します。

ストリームに対してaddAbortSignalメソッドを呼び出し、AbortSignalを関連付けることで、そのシグナルが発火(アボート)された際に、関連付けられたストリームが自動的に破棄(destroy)されます。これにより、完了する前に中断された非同期操作に関連するリソースが適切に解放され、メモリリークや不要な処理の継続を防ぐことができます。

例えば、ネットワークリクエスト中にユーザーが操作をキャンセルした場合や、タイムアウトが発生した場合などに、このメソッドを使ってストリーム処理を中断し、リソースを速やかに解放することが可能です。ストリームの読み書き中に発生しうるさまざまな状況に対応し、堅牢なアプリケーションを構築するために重要な機能です。この機能は、非同期処理の制御とリソース管理を効果的に行うための標準的なアプローチを提供します。

構文(syntax)

1const { AbortController } = require('node:events');
2const { Writable } = require('node:stream');
3
4const myStream = new Writable({
5  write(chunk, encoding, callback) {
6    callback();
7  }
8});
9
10const controller = new AbortController();
11const signal = controller.signal;
12
13myStream.addAbortSignal(signal);

引数(parameters)

signal, stream

  • signal: AbortSignal: ストリーム操作を中断するためのシグナルオブジェクト
  • stream: Stream: アボートシグナルを登録するストリームオブジェクト

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ