【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)
戻り値なし
戻り値はありません