promise即走then又走catch的原因

2020-11-09  本文已影响0人  noyanse

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')
  })
}
上一篇下一篇

猜你喜欢

热点阅读