【发布时间】:2019-08-12 19:44:07
【问题描述】:
当我用错误的参数调用getItem 函数时,它仍然通过then 部分。但是回复只是Error: Request failed with status code 404。
发生错误时如何避免进入then部分?
getItem = async objectId => {
const client = await this._getAxiosClient();
const headers = await this._generateHeaders();
return client
.get('/some/url', {
headers,
})
.then(response => {
...
}).catch(error => {
console.log(error)
});
}
【问题讨论】:
-
你确定实际状态码也是404吗?
-
不确定我是否理解得很好,当我在
then中放置一个控制台日志时,我得到:错误:请求失败,状态码为 404 at createError (createError.js:16) at set (settle.js :17) 在 XMLHttpRequest.handleLoad (xhr.js:59) 在 XMLHttpRequest.dispatchEvent (event-target.js:172) 在 XMLHttpRequest.setReadyState (XMLHttpRequest.js:572) 在 XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:394) 在XMLHttpRequest.js:507 在 RCTDeviceEventEmitter.emit (EventEmitter.js:189) 在 MessageQueue.__callFunction (MessageQueue.js:366) 在 MessageQueue.js:106 -
response.status是什么? -
@JonasWilms 如果我在控制台登录 'then' 它是
undefined但如果我在 axios 错误处理程序中打印它error.response.status是 404 -
我确实感觉到
.then从未运行,但您误解了控制台输出......或者代码未显示。请创建一个minimal reproducible example...
标签: javascript asynchronous error-handling axios