Node.js で非同期処理を待って正常終了させる
$ node hoge.js
のような形で Node.js に JavaScript コードを実行させるときに、process.exit(1)
のように書くと、引数に指定した終了コードで処理を終了できる (0 なら正常終了、1 なら異常終了)。コレでシェルスクリプトのような操作ができるのだ。
しかし、この process.exit()
は非同期処理を待ってくれないので、以下のように exit
イベントに追加する形で呼んであげると良い。
process.on('exit', () => {
process.exit(1);
});
少なくとも正常終了時は process.exit(0)
を明記せず、非同期処理が絡む異常終了時のみ、このように exit
イベントに追加して呼ぶようにすると良いだろう。