如何处理Fetch JavaScript中的错误

vbopmzt1  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(144)

我有一个错误处理代码,它工作得很好,但在控制台中显示那些红色错误。我尝试了.catch()函数,但它不起作用,错误仍然显示,.catch()中的代码也不运行
下面是工作代码:

function getData(key) {
fetch(key)
    .then(res => {
        if (res.ok === false) {
            res.json()
                .then(e => {
                    alert(e.message)
                })
        }
        else {
            res.json()
        }
    })
    .then(json => {
        data = json;
    })

}
我只是试图向用户显示错误消息,而不显示那些控制台错误。

zpgglvta

zpgglvta1#

您可以按如下方式调整代码,以捕获失败并显示错误消息,而不是在控制台中显示红色错误:

function getData(key) {
    fetch(key)
        .then(res => {
            if (res.ok === false) {
                return res.json()
                    .then(e => {
                        alert(e.message);
                        throw new Error(e.message); // Throw error to trigger .catch()
                    });
            }
            else {
                return res.json();
            }
        })
        .then(json => {
            data = json;
        })
        .catch(error => {
            // Handle the error here and display error message to user
            console.error(error); // You can log the error to console if needed
            alert(error.message);
        });
}

这里使用**alert()显示错误通知,并启动.catch()块后,从inner.then()块返回res.json()**promise。这样,问题就会被发现,用户会得到错误消息,而控制台不会显示红色错误。

相关问题