vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue使用Promise方式

vue关于Promise的使用方式

作者:曾令胜

这篇文章主要介绍了vue关于Promise的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Promise基本概念

Promise是一个构造函数,所以可以 new 出一个Promise的实例;

所以只要是Promise构造函数创建的实例,都可以访问到 .then()方法;

只有两种结果:

由于Promise的实例是一个异步操作,所以内部拿到操作结果后,无法使用return把操作结果返回给调用者 ,

这个时候只能使用 回调函数 的形式,把成功或失败的结果,返回给调用者,

具体:

使用实例

store.js的actions中添加increment方法。测试reject的使用方法。

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

调用increment

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

返回结果为

store.js的actions中添加increment方法。

测试resolve的使用方法。

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

调用

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

输出

总结

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文