process.exit([code])
參數
code
<integer> 退出代碼。 默認:0
。
process.exit()
方法指示 Node.js 以 code
的退出狀態同步終止進程。如果省略code
,則退出使用'success' 代碼0
或process.exitCode
的值(如果已設置)。在調用所有
事件偵聽器之前,Node.js 不會終止。'exit'
使用 'failure' 代碼退出:
import { exit } from 'node:process'; exit(1);
const { exit } = require('node:process'); exit(1);
執行 Node.js 的 shell 應該看到退出代碼為 1
。
調用 process.exit()
將強製進程盡快退出,即使仍有尚未完全完成的異步操作掛起,包括對 process.stdout
和 process.stderr
的 I/O 操作。
在大多數情況下,實際上沒有必要顯式調用process.exit()
。如果事件循環中沒有其他待處理的工作,Node.js 進程將自行退出。 process.exitCode
屬性可以設置為告訴進程在進程正常退出時使用哪個退出代碼。
例如,以下示例說明了 process.exit()
方法的濫用,這可能導致打印到 stdout 的數據被截斷和丟失:
import { exit } from 'node:process'; // This is an example of what *not* to do: if (someConditionNotMet()) { printUsageToStdout(); exit(1); }
const { exit } = require('node:process'); // This is an example of what *not* to do: if (someConditionNotMet()) { printUsageToStdout(); exit(1); }
這是有問題的原因是因為在 Node.js 中對 process.stdout
的寫入有時是異步的,並且可能發生在 Node.js 事件循環的多個滴答聲中。但是,調用 process.exit()
會強製進程在可以執行對 stdout
的額外寫入之前退出。
而不是直接調用process.exit()
,代碼應該設置process.exitCode
並通過避免為事件循環安排任何額外的工作來允許進程自然退出:
import process from 'node:process'; // How to properly set the exit code while letting // the process exit gracefully. if (someConditionNotMet()) { printUsageToStdout(); process.exitCode = 1; }
const process = require('node:process'); // How to properly set the exit code while letting // the process exit gracefully. if (someConditionNotMet()) { printUsageToStdout(); process.exitCode = 1; }
如果由於錯誤情況需要終止 Node.js 進程,則拋出未捕獲的錯誤並允許進程相應地終止比調用 process.exit()
更安全。
在
線程中,此函數停止當前線程而不是當前進程。Worker
相關用法
- Node.js process.exit()用法及代碼示例
- Node.js process.exitCode用法及代碼示例
- Node.js process.execPath用法及代碼示例
- Node.js process.execArgv用法及代碼示例
- Node.js process.emitWarning()用法及代碼示例
- Node.js process.emitWarning(warning[, options])用法及代碼示例
- Node.js process.env用法及代碼示例
- Node.js process.env()用法及代碼示例
- Node.js process.emitWarning(warning[, type[, code]][, ctor])用法及代碼示例
- Node.js process.stdin用法及代碼示例
- Node.js process.arch()用法及代碼示例
- Node.js process.nextTick(callback[, ...args])用法及代碼示例
- Node.js process.noDeprecation用法及代碼示例
- Node.js process.setUncaughtExceptionCaptureCallback()用法及代碼示例
- Node.js process.getgid()用法及代碼示例
- Node.js process.setgid(id)用法及代碼示例
- Node.js process.chdir(directory)用法及代碼示例
- Node.js process.setgid()用法及代碼示例
- Node.js process.getuid()用法及代碼示例
- Node.js process.ppid用法及代碼示例
- Node.js process.report.reportOnSignal用法及代碼示例
- Node.js process.report.directory用法及代碼示例
- Node.js process.umask(mask)用法及代碼示例
- Node.js process.setgroups(groups)用法及代碼示例
- Node.js process.setegid(id)用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 process.exit([code])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。