gpt4 book ai didi

javascript - promise 解决后,如何在错误中传递错误?

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

我有一个api调用。万一失败,我想得到一个错误。为什么错误出现在then()中而不出现在catch()中?如何从捕获中访问它?我希望不必在then()内编写长函数,例如if!res &&等。
这是代码:

const postStuff = async () => {
try {
const res = await ax.post("/stuff");
return res;
} catch (err) {
return new Error();
}
};

export default function App() {
React.useEffect(()=> {
postStuff()
.then(res=> console.log("res", res))
.catch(err=> console.log("err", err))
}, [])
return (
<div className="App">
hello world
</div>
);
}

最佳答案

由于您只是在捕获错误后才返回错误,因此它将不再到达catch中的useEffect块。
只需在catch块中抛出错误:

const postStuff = async() => {
try {
const res = 'bla';
throw new Error();
return res;
} catch (err) {
throw new Error();
}
};

postStuff().then(res => console.log('then', res))
.catch(err => console.log('catch', err))

或者删除 postStuff中的try catch:

const postStuff = async() => {
const res = 'bla';
throw new Error();
return res;
};

postStuff().then(res => console.log('then', res))
.catch(err => console.log('catch', err))

关于javascript - promise 解决后,如何在错误中传递错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65540608/

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