-
該当ページ質問内容以下のコードでエラーが発生した場合、 const program = require("commander");
const fs = require("fs");
program.parse(process.argv);
const filePath = program.args[0];
// ファイルを非同期で読み込む
fs.readFile(filePath, { encoding: "utf8" }, (err, file) => {
if (err) {
console.error(err.message);
// 終了ステータス 1(一般的なエラー)としてプロセスを終了する
process.exit(1);
return;
}
console.log(file);
}); |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
現実的な挙動的にはあってもなくても特に違いはないですね。 ただ、コードチェックをするツールやエディタなどが こういう感じでリファクタリングをして const program = require("commander");
const fs = require("fs");
const run = (filePath) => {
return new Promise((resolve, reject) => {
// ファイルを非同期で読み込む
fs.readFile(filePath, { encoding: "utf8" }, (err, file) => {
if (err) {
reject(err);
return;
}
resolve(file);
});
});
};
program.parse(process.argv);
const filePath = program.args[0];
run(filePath).then((output) =>{
console.log(output);
process.exit(0);
}).catch(error => {
console.error(error.message);
process.exit(1);
}); |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
現実的な挙動的にはあってもなくても特に違いはないですね。
process.exit()
はプロセスを強制的に終了してしまうので。https://nodejs.org/api/process.html#process_process_exit_code
ただ、コードチェックをするツールやエディタなどが
process.exit
を認識できていない場合、関数がそこで終了するかが認識できないので、補助的に
return
を入れることがありますね。実際にこの状況で
return
を入れるか入れないかは好みの問題だと思います。こういう感じでリファクタリングをして
process.exit
を移動した場合でも変更しなくて済むという話もあるかもしれないですね。