Error in v-on handler (Promise/async): “[object Object]“
把请求处理放在了main.js:axios.interceptors.response.use(response => {if (response.data.code != 0) {return Promise.reject(response);}return response.data})发现:当后端返回的code不为零的时候,也就是return Promise.rehect(respon
·
把请求处理放在了main.js:
axios.interceptors.response.use(
response => {
if (response.data.code != 0) {
return Promise.reject(response);
}
return response.data
}
)
发现:当后端返回的code不为零的时候,也就是return Promise.rehect(response)执行的时候,虽然代码运行正常,但是控制台会报错:
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in v-on handler (Promise/async): "[object Object]"
found in
---> <Login> at src/views/Login.vue
<App> at src/App.vue
<Root>
在网上查找问题,发现需要捕获Promise.rehect(response)的异常,但是大部分都说是在组件里面捕获,那这样把判断放在main文件里面不就没有意义了吗,所以可以把捕获处理放在main文件里面,如下:
axios.interceptors.response.use(
response => {
if (response.data.code != 0) {
Message({content: response.data.message});
return Promise.reject(response).catch(()=>{});
}
return response.data
},
)
也就是在Promise.rehect(response)
后面直接加上.catch(()=>{})
,目前亲测有效。
更多推荐
已为社区贡献1条内容
所有评论(0)