繁体   English   中英

在失败的 JS Fetch 上发送响应的正确方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM