【发布时间】:2019-10-27 21:27:57
【问题描述】:
我在 JavaScript 中有以下 fetch API 调用
async doCheckin(authCode) {
return await fetch(endpoint + "/checkin", {
method: "put",
headers: new Headers({'content-type': 'application/json'}),
body: JSON.stringify({authCode: authCode})
})
.then(this.checkStatus)
.then(this.toJson)
.catch(function (error) {
console.error("Checkin not successful");
throw error;
});
}
async checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response)
} else {
let errorJson = await response.json();
return Promise.reject(errorJson.code);
}
}
toJson(response) {
return response.json()
}
函数是这样调用的
let checkIn = (await apiService.doCheckin(code)
.catch(displayError));
此调用应处理来自服务器的 JSON 错误响应并显示错误代码。我注意到一些应用内移动浏览器无法处理错误情况并在let errorJson = await response.json();失败
这是处理和读取错误响应的正确方法还是有更好的方法来实现这一点?
【问题讨论】:
标签: javascript fetch-api