![](/img/trans.png)
[英]Is there really no way to get the response body from a failed js fetch request?
[英]Proper way to send response on a failed JS Fetch
我有一个请求,我正在使用 Javascript Fetch API 执行,我正在尝试实现错误处理。
我已经实现了以下 function:
export async function fetchFoo() {
const data = await fetch(`http://localhost:9090/foo`, {
method: "GET",
redirect: "follow",
})
.then((res) => {
if (!res.ok) {
throw Error(res.statusText);
}
})
.then(async (res) => await res.json())
.catch(() => undefined);
return data;
}
我从一个 React 组件调用这个 function,然后显示数据。 如果出现错误,我对应该返回的内容有点困惑? 目前,我只是返回undefined
并在前端显示错误。 但是,这种方法感觉不正确,将什么类型的数据发送回调用方合适?
后端通常会返回一条错误消息,您可以将其转发给用户。 另一种可能性是检查响应的状态码,如果是 4XX 响应,则根据错误类型返回错误消息。
我通过重组处理请求的方式解决了我的问题。 我没有在catch
中执行任何类型的操作,而是在处理程序 function 调用上捕获了错误,并在那里做了我想要的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.