错误处理-被全局错误处理捕获,却没有被组件错误处理捕获
当用户名输入错误的时候,直接进入了全局错误处理环节errorHandle,而没有进入组件中的catch(),不知怎么处理
const errorHandle = (ctx, next) => { return next().catch((err) => { if (401 == err.status) { ctx.status = 401; ctx.body = { code:401, msg:'Protected resource, use Authorization header to get access\n' } } else { // 进入了这里 console.log('errorapp'); ctx.status = err.status || 500 ctx.body = { code:500, msg:err.message } } }) } //组件中方法 async submit(){ const isValid = await this.$refs.observer.validate() if(!isValid){ return } login({ username: this.name, password: this.password, code: this.code, sid: this.$store.state.sid }).then(r => { if(r.code == 200){ console.log(r); } }).catch(err => { //没有被这里捕获 console.log('err',err); }) }
30
收起
正在回答
2回答
你问题解决了吗? 我当初的问题是, 在请求响应拦截器给了,
errorHandle(err), 这个函数什么也没做。 我的问题是因为这句,它走了这个错误,所以没有进入到catch, 你把这个注释掉就可以了。 // errorHandle(err)。
以下这样写,会报 typeError
const errorHandle = (err) => {
// console.log(err)
}
export default errorHandle
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星