gpt4 book ai didi

Javascript:拒绝成功的 promise

转载 作者:行者123 更新时间:2023-11-29 23:22:16 25 4
gpt4 key购买 nike

有时候我发现自己在写下面的代码:

if (result.status == 200) {
return result.json()
} else {
return result.json().then(res => Promise.reject(res))
}

如果状态不是 200,那么结果将包含一条我想返回的错误消息。 (这是 api.js 脚本的一部分)

是否有更好的方法来“反转”.json() promise ?

我想到的可能是这样的:

返回 Promise.reject(result.json)

有没有办法让我做这样的事情?我期望 result.json 的成功结果是 catch 路由中的错误对象。

最佳答案

这看起来有点奇怪,我会采用这种方法

return result.json().then(json => {
if (result.status === 200) {
return json;
}

throw new Error(`Failed with ${json}`);
});
  • 你应该总是抛出/返回被拒绝的 promise ,其中包含错误对象。一些模块甚至依赖于此,并且可以通过抛出非错误对象来出乎意料地表现
  • 我认为抛出错误比返回表现得像抛出错误的东西更“明显”
  • if-else 正在增加复杂性。如果不需要,请删除 else
  • 最好习惯===,使用==会带来一些问题

关于Javascript:拒绝成功的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50255676/

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