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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用混淆矩阵计算kappa系数「建议收藏」

    用混淆矩阵计算kappa系数「建议收藏」从一篇论文——融合注意力机制和高效网络的糖尿病视网膜病变识别与分类,看到人家除了特异性、敏感性、准确率、混淆矩阵以外,还用了加权kappa系数,所以了解一下kapp系数的知识,加权kappa还没找到更好的资料。。。资料来源于百度百科词条——kappa系数Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的.kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被

    2022年6月28日
    27
  • go struct转map_golang map

    go struct转map_golang mapGo字符串转Map和Map的嵌套取值想用Go写爬虫联系一下语法的,结果数据类型转换还不熟悉。map嵌套取值就会报错typeinterface{}doesnotsupportindexing字符串转Map//示例字符串resString:=`{ “args”:{}, “headers”:{ “Accept-Encoding”:”gzip”, “Host”:”httpbin.org”, “User-Agent”:”GRequests/0.10

    2022年9月10日
    0
  • Hackbar 免费下载+使用指南

    Hackbar 免费下载+使用指南Ctrl+Enter执行

    2022年6月7日
    42
  • origin多因子柱状图双y轴_origin并列柱状图

    origin多因子柱状图双y轴_origin并列柱状图origin多因子柱状图方法与步骤打开软件,输入数据。其实做这个图的主要关键点就是数据在origin里面的摆放。横坐标X轴为每个指标,Y轴横着放每个组别的数据,为均值加减标准差的形式。选中每一列的标准差数值,设置为Y轴标准差形式选中数据,选择柱状图初始的图就出来了我们再对其进行标签的调整,将多余的删除,纵坐标标签改错。双击图层,去掉横纵坐标的次坐标。选中横纵坐标的字体,统一调整为新罗马字体22号。最后我们双击柱子,改成我们喜欢的颜色就可以了。这里我们可以

    2022年9月30日
    0
  • 记一次kubernetes Evicted的处理[通俗易懂]

    记一次kubernetes Evicted的处理[通俗易懂]背景:事情这样的:kubernetes1.21.3集群。容器运行时containerd。除了K8s-node-06节点。保留这个docker节点有很多原因。比如当时没有想好用什么打包镜像。默认让jenkins打包镜像。还有就是我的gitlab10.8.7版本contarinerd运行时下无法启动。就保留了这个节点运行gitlabpod。当然了也把这个节点设置为了不可调度。不相其他应用调度到这个节点上来!最近一段时间gitlab应用频繁出现Evicted的问题:这样就陷入了一个死循环:我的k8s-

    2022年5月17日
    46
  • 英语二十天 2010-10-14

    英语二十天 2010-10-14

    2021年8月8日
    49

发表回复

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

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