当使用 JavaScript fetch API 从服务器请求时,您必须执行类似的操作
fetch(API)
.then(response => response.json())
.catch(err => console.log(err))
在这里,response.json()
正在解决它的Promise。
问题是如果你想捕获404
错误,你必须解决响应Promise,然后拒绝获取Promise,因为只有在catch
出现网络错误时才会结束。所以 fetch 调用变得像
fetch(API)
.then(response => response.ok ? response.json() : response.json().then(err => Promise.reject(err)))
.catch(err => console.log(err))
这是更难阅读和推理的东西。所以我的问题是:为什么需要这样做?将Promise作为响应值有什么意义?有没有更好的方法来处理这个问题?