在 Axios 中使用 catch() 处理错误
Axios 请求是 Promise,这意味着它们有一个 then()
函数 用于 承诺链 ,以及 catch()
处理错误的函数。 以下是您可以如何 catch()
Axios 中的错误。
const err = await axios.get('https://httpbin.org/status/404').
catch(err => err);
err instanceof Error; // true
err.message; // 'Request failed with status code 404'
catch()
完全相同于 Promise 的 catch()
功能 。 所以你可以使用承诺链,并添加一个 catch()
最后处理承诺链中发生的任何错误。
const err = await axios.get('https://httpbin.org/status/200').
// Will throw a TypeError because the property doesn't exist.
then(res => res.doesNotExist.throwAnError).
catch(err => err);
err instanceof TypeError; // true
你也可以使用 catch()
要转换错误,只需确保之后重新抛出错误。
let error;
try {
await axios.get('https://httpbin.org/status/404').catch(err => {
if (err.response.status === 404) {
throw new Error(`${err.config.url} not found`);
}
throw err;
});
} catch (err) {
error = err;
}
error.message; // "https://httpbin.org/status/404 not found"
您还可以 使用拦截器自动使 Axios 转换错误 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 使用 Axios 发送 JSON 数据
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论