我正在从API(特别是Twitch API)中获取JSON,因此必须指定标头。我成功捕获了错误并使用ok
属性阻止了URL不正确时在控制台中显示该错误。
fetch("url", {
headers: {
// ...
}
})
.then(res => res.ok ? res : Promise.reject(res))
.then(json => {
// do something
})
.catch(err => {
console.log("Error: " + err);
});
但是,正如我发现的那样,如果标题不正确,它将捕获错误,但无论如何在控制台中都会显示错误。尝试catch阻止无济于事。
fetch('https://api.twitch.tv/kraken/users?login=spekalsg3', {
headers: {
'client-id': 'wrong id',
'accept': 'application/vnd.twitchtv.v5+json'
}
})
.then(res => res.ok ? res.json() : Promise.reject(res))
.then(json => {
console.log(json);
})
.catch(err => {
console.log(err);
});
那么如何捕获它并防止其在控制台中显示?
PS标头不依赖于用户输入,但是如果我遇到问题,我想捕获错误。