gpt4 book ai didi

javascript - 在 catch block 中处理异常

转载 作者:行者123 更新时间:2023-11-29 20:47:42 26 4
gpt4 key购买 nike

我有几个异步回调,我想一个接一个地尝试。

这些设计用于在它们运行的​​异步测试失败时抛出错误。

测试从高到低检查用户的权限。因此,如果我们要检查用户是否在特定组中,我们首先检查他们是否是管理员,如果不是,则不需要进一步检查。

我的直觉是像这样链接 catch block :

try {
await userIsAdmin;
next();
} catch(e) {
await userIsInGroup(group);
next();
} catch(e) {
console.log('User is not admin or in the group');
}

我正要开始嵌套我的 try's 和 catches,但我开始闻到老鼠的味道。

这是对可能会或可能不会引发错误的多个异步操作进行排序的明智方法吗?

最佳答案

一个相对简洁的解决方案,避免了 .catch block 充当调用 next() 的错误处理程序,如下所示:

  getUser()
.then(async () => {
await userIsAdmin();
next();
})
.catch(async () => {
await userIsInGroup(group);
next();
})
// etc...

这样 catch block 就可以明确地充当 await 语句的错误处理程序,并且不会错误地用于 next() 调用。

关于javascript - 在 catch block 中处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53712386/

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