Promise可以实现异步方法,这里主要讨论resolve 和reject 两个参数。

 

直接看实例,可能比较直观

    increment (context) {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          context.commit('increment')
          //   resolve('1111')
          reject(new Error('2222222'))
        }, 1000)
      })
    }

reject 返回的是错误信息。。

通过调用catch 可以捕获

    handleActionDecrease () {
      this.$store.dispatch('increment').then((data) => {
        console.log(data)
        console.log(this.$store.state.count)
      }).catch((error) => {
        console.log(error)
      })
    }

输入如下:

 

 resolve 对应的是then 处理

修改一下:

    increment (context) {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          context.commit('increment')
          resolve('1111')
          //reject(new Error('2222222'))
        }, 1000)
      })
    }

截图如下:

 总结:

resolve   ---》对应then

reject     ---》对应catch

 

另外,只有调用了resolve 或者reject 才会触发 then 和 catch

Logo

前往低代码交流专区

更多推荐