gpt4 book ai didi

node.js - 在 promise 链中调用 process.exit() 的正确位置

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:11 25 4
gpt4 key购买 nike

在理解 Node 进程和 promise 链的交互时遇到问题:

doSomethingAsync()
.then()
.then()
.catch()
.finally();

引入finally来关闭在doSomethingAsync()内打开的数据库连接。

问题:发生错误的 process.exit(1) 正确属于哪个 block ?

  • .catch()中,因为那是错误发生的地方,或者
  • .finally() 中,因为它是最后应该发生的事情? (但是如果出现错误并且触发了catch(),连接是否会被释放)?
  • 无处可去,因为 Node 已经知道程序失败了?

最佳答案

如果目标是让应用程序在发生错误时终止,那么我根本不会捕获异常

async function doSomething() {
try {
const result = await doSomethingAsync();
// do something with result
} finally {
// do cleanup
}
}

使用async/await语法将允许Promise抛出错误,并且未捕获的异常将终止应用程序。无论是否抛出错误,finally block 都会运行。

关于node.js - 在 promise 链中调用 process.exit() 的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54659934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com