vue 中 Promise 使用方法

vue 中 Promise 使用方法1.Promise基本概念:Promise是一个构造函数,所以可以new出一个Promise的实例;在Promise上有两个函数resolve(成功之后的回调函数)和reject(失败后的回调函数);在Promise构造函数的prototype属性上,有一个.then()方法。所以只要是Promise构造函数创建的实例,都可以访问到.then()方法;Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的异步操作。Promise创建

大家好,又见面了,我是你们的朋友全栈君。

1. Promise 基本概念:

Promise是一个构造函数,所以可以 new 出一个Promise的实例;
在Promise上有两个函数 resolve (成功之后的回调函数)和 reject (失败后的回调函数);
在Promise构造函数的prototype属性上,有一个 .then() 方法。
所以只要是Promise构造函数创建的实例,都可以访问到 .then()方法;
Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的 异步 操作
Promise创建的实例,是一个异步操作,这个异步操作结果,只有两种结果:
状态1:异步执行 成功,需要在内部调用成功的回调函数resolve把结果返回给调用者
状态2:异步执行 失败,需要在内部调用失败的回调函数reject把结果返回调用者
由于Promise的实例是一个异步操作,所以内部拿到操作结果后,无法使用return把操作结果返回给调用者 ,
这个时候只能使用 回调函数 的形式,把成功或失败的结果,返回给调用者,具体:
我们可以在new出来的Promise实例上,调用 .then()方法,预先为这个Promise异步操作,指定成功(resolve)和失败(reject)回调函数。

2.使用实例

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)
      })
    }

输出

在这里插入图片描述

3、总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148353.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Centos7 网络配置 设置静态Ip

    Centos7 网络配置 设置静态Ip服务器Centos7系统装好后,我需要上网功能,这样客户端才可以连接服务端,那么那些命令可以配置网络登录系统配置动态IP上网输入命令:ls/etc/sysconfig/network-scripts/查看网卡列表,一般默认第一个就是你电脑的网卡,ifconfig-enp6s0就是我的有线网卡。输入命令cat/etc/sysconfig/network-scripts/ifcfg-e

    2022年5月3日
    80
  • AC自动机和Fail树

    Fail树与阿狸的打字机萌新第一次试着写博客…全是口胡(/□\*),可能以后也不会有时间再写了相关数据结构:AC自动机,树状数组(线段树)Fail指针的基本性质:某只结点的Fail指针,指向它所代表的字符串的最长的后缀的结点。性质:每只结点沿着其Fail指针一直走,最终会走到根节点。这样,将每只结点和其Fail指针指向的结点连边,就形成了一个树,其根与原Trie树相同,称为Fail树。…

    2022年4月7日
    57
  • ikbc 104键win键失效

    ikbc 104键win键失效fn+del键(或者fn+r)长按五秒,看到3个指示灯闪烁,说明键盘恢复出厂设置了,也解决了当前问题。

    2022年6月4日
    187
  • 什么是RESTful API

    什么是RESTful API

    2021年11月6日
    41
  • explan 结果每个字段说明

    explan 结果每个字段说明https://blog.csdn.net/u011383596/article/details/108092176

    2025年5月24日
    4
  • PyCharm配置_pycharm安装配置

    PyCharm配置_pycharm安装配置pycharmpycharm是一个比较好的pythonIDE,可以在MACOS和windows上使用,补全功能强大,而且界面十分友好,特别适合python编程人员使用。pycharmPycharm安装Pycharm配置修改成灰底主题显示行号修改字体大小编程字体我推荐运行调试Pycharm安装pycharm的安装地址:http://www.jetbrains.com/

    2022年8月26日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号