面试题答案
一键面试fetch('https://example.com/api/data')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Error:', error);
});
错误捕获说明
- 使用
.catch
方法:fetch
返回的Promise
如果被拒绝(例如网络故障、请求超时、HTTP状态码非2xx等),.catch
块中的代码会被执行,其中error
参数包含了错误信息。 - 检查响应状态:在
.then
中,通过检查response.ok
属性判断HTTP状态码是否为2xx。如果不是,手动抛出一个错误,这样也会被.catch
捕获。这样可以捕获到请求成功但响应状态不正常的情况。