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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。