我写了一段代码,在一定条件下结束进程,当我写成areturn
时,由于内存溢出错误异常结束,process.exit()
正常结束。
PS我的代码只是一个功能。所以这两种方法退出了一个功能。
结束流程时,您能解释一下这两种方法的区别吗?
if(condition === true)
process.exit();
if(condition === true)
return;
我写了一段代码,在一定条件下结束进程,当我写成areturn
时,由于内存溢出错误异常结束,process.exit()
正常结束。
PS我的代码只是一个功能。所以这两种方法退出了一个功能。
结束流程时,您能解释一下这两种方法的区别吗?
if(condition === true)
process.exit();
if(condition === true)
return;
return 只会停止包含 return 语句的函数。process.exit 将停止所有正在运行的函数并停止所有任务。
因此,当您调用 return 时,它将停止当前函数但执行剩余的函数。
process.exit
会强制丢弃一些挂起的异步任务。调用 process.exit() 将强制进程尽快退出,即使仍有尚未完全完成的异步操作挂起,包括对 process.stdout 和 process.stderr 的 I/O 操作。
-- https://nodejs.org/api/process.html#process_process_exit_code
process.exit()
防止beforeExit
事件发出。当 Node.js 清空其事件循环并且没有额外的工作要安排时,会发出 'beforeExit' 事件。通常情况下,Node.js 进程会在没有安排工作时退出,但在 'beforeExit' 事件上注册的监听器可以进行异步调用,从而使 Node.js 进程继续。