Javascript Axios错误状态代码未处理PromisejectionWarning
使用axios,我向多个链接发出GET请求,以测试它们是否是断开的链接。如果GET请求返回错误,我希望将此错误记录到控制台,并使用套接字将其发送到客户端。但是,在某些链接(并非全部)上,我收到了一条Javascript Axios错误状态代码未处理PromisejectionWarning,javascript,node.js,express,axios,Javascript,Node.js,Express,Axios,使用axios,我向多个链接发出GET请求,以测试它们是否是断开的链接。如果GET请求返回错误,我希望将此错误记录到控制台,并使用套接字将其发送到客户端。但是,在某些链接(并非全部)上,我收到了一条未处理的PromisejectionWarning // check if the link is dead axios.get(linkHref, { auth: { username: USERNAME, password: PASSWORD } }) .then(
未处理的PromisejectionWarning
// check if the link is dead
axios.get(linkHref, {
auth: {
username: USERNAME,
password: PASSWORD
}
})
.then( (response) => {
if (response.status != 200) {
resultData = {
text: linkText,
url: linkHref,
statusCode: String(response.status)
}
console.log(resultData);
io.sockets.emit("result", resultData); // send link to client-side
}
})
.catch( (error) => {
if (error) {
resultData = {
text: linkText,
url: linkHref,
statusCode: String(error.response.status) // this is where the error is
}
console.log(resultData);
io.sockets.emit("result", resultData); // send link to client-side
}
});
我希望它能正常工作并返回错误的状态代码,但有时我会得到一个未处理的PromisejectionWarning:TypeError:无法读取未定义的错误的属性“status”。但是,对于.catch
中的if语句,我正在检查以确保存在错误,并且它不是未定义的,因此我不理解为什么会出现此错误
编辑:而且,当我在Mac电脑上运行它时,它也能工作(不会显示错误),但在Windows上不运行。。。为什么?您可以通过验证是否在if-else条件下获取错误对象的响应属性来检查吗
.catch( (error) => {
if (error.response) {
//rest of the code...
}
});
TypeError:无法读取未定义的属性“status”
错误的响应属性。未定义响应,例如error={response:undefined}
。因此,引用其上的任何属性都会引发错误<代码>错误。响应[属性]
此外,对于失败/挂起的http请求,错误参数也不同。看看这个要点。对于这种情况,错误参数将具有不同的属性