1. then中有错误,Promise会自动捕获内部异常,并交给rejected响应函数处理。
this.getData().then(res => {
const a = null
console.log(a.b) // 明显的错误会走到下面的catch
}).catch(err => {
console.log('catch err')
})
2. catch后面又写then
vue中一般api请求放在actions中
action.js:
getData({ commit }, params = {}) {
return Api.getData(params).then((res) => {
return res
}).catch(err => {
// 如果接口出错走了catch
})
},
index.vue:
init() {
this.getData().then(res => {
// 如果上面走了catch,这边的then也会执行
console.log('then again')
})
}
网友评论