gpt4 book ai didi

javascript - promise 决心成功吗?

转载 作者:行者123 更新时间:2023-12-03 08:49:45 25 4
gpt4 key购买 nike

我正在用JavaScript写一个简单的REST API,我想知道使用Promises和解析/拒绝机制时最好的方法是什么。

起初,我想做出 promise 签名,例如:

MyApi.getSomeData()
.then(responseSuccess => console.log(responseSuccess))
.catch(responseError => console.log(responseError)

其中 success表示我们获得了代码 200并拥有一些数据,但错误意味着即我们从服务器获得了 404。我想确保将使用API​​方法的最终用户能够保证将获得特定对象的on error(catch)。

但是,如果Promise在内部某处抛出异常(某些运行时错误或类似的错误)怎么办?然后,将使用此 Error而不是我的responseError结构来拒绝 promise 。

在这些情况下最好的方法是什么?如何区分操作成功,操作失败(但故意,即 404代码)和操作意外错误?

最佳答案

Promise中的运行时错误将触发catch块。这是不可避免的。但是,您可以通过检查错误的主体来区分运行时错误和网络错误。所以假设

responseError = {
type: 'NETWORK_ERROR',
status: 400,
message: 'Invalid input'
}

if (responseError.type === 'NETWORK_ERROR') {
// Network error code here
} else {
// All other types of errors
}

您也可以在一个普通的地方抽象该逻辑,以便您可以重用它。

关于javascript - promise 决心成功吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907540/

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