then的双回调
在新项目里then的第一个回调中失败请求处理不能拿到服务器返回的错误提示
原写法,部分失败请求返回的信息不能适用
.then(res => {
if (res.data.code == 200) {
//请求成功处理
this.$emit("updateSucc");
this.initData();
} else {
//请求失败处理
this.$message.error(res.data.message);
}
})
.catch(error => {
//异常处理
});
then是实例状态发生改变时的回调函数,第一个参数是resolved状态的回调函数,第二个参数是rejected状态的回调函数
.then(res => {
if (res.data.code == 200) {
//请求成功处理
this.$emit("updateSucc");
this.initData();
} else {
//请求失败处理
this.$message.error(res.data.message);
}
},
err => {
this.$message({
message: err.response.data.message,
type: "warning"
})
})
.catch(error => {
//异常处理
});
如上写法,可以拿到服务器的返回的错误提示,并在操作错误时进行弹窗提示
PS: 第二个回调中,err下是没有data属性的,如果使用err.message,效果如下
即err.message是提示错误的错误类型
改为err.response.data.message后再来
须用err.response下才会是服务器返回的数据对象data
err.response.data.message
如有建议或问题,欢迎交流