什么是promise?

什么是promise?什么是promise?Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,promise是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。Promise是一个构造函数,对外提供统一的API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。Promise的两个特点Promise对象的状态不受外界影响pending初始状态fulfilled成功状态rejected失

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

什么是promise?

  1. Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
  2. 从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。
  3. Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。

Promise的两个特点

  1. Promise对象的状态不受外界影响

    pending 初始状态
    
    fulfilled 成功状态
    
    rejected 失败状态
    

Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态

  1. Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由 pending变成fulfilled或者由pending变成rejected

使用new来创建一个promise对象。

Promise接受一个「函数」作为参数,该函数的两个参数分别是resolve和reject。这两个函数就是就是「回调函数」

resolve函数的作用:在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;

reject函数的作用:在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

const promise = new Promise((resolve, reject) => { 
   
    // do something here ...
    if (success) { 
   
        resolve(value); // fulfilled
    } else { 
   
        reject(error); // rejected
    }
});

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

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

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


相关推荐

  • 解决mysql操作1045错误,1153错误和1130错误

    解决mysql操作1045错误,1153错误和1130错误

    2021年9月26日
    52
  • 关于kafuka的简单认识与理解「建议收藏」

    关于kafuka的简单认识与理解「建议收藏」因为工作中负责维护的产品中有使用消息中间件kafuka的系统,所以把工作中的理解和遇到的问题总结出来,方便后期查看,好记性不如烂笔头。kafuka是一个分布式的、分区化、可复制提交的发布订阅消息系统,使用kafuka需要对其中的一些概念做简单了解。一、kafuka基础1、topic主题:Kafka中用于区分不同类别信息的类别名称。由producer指定2、Producer:将消息发布到Kafka特定的Topic的对象3、Consumers:订阅并处理特定的Topic中的消息的对象4、broke

    2022年6月11日
    47
  • traceroute命令讲解

    traceroute命令讲解  通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其…

    2022年6月15日
    39
  • pycharm中彻底删除一个工程的步骤

    pycharm中彻底删除一个工程的步骤具体出现的问题是,你已经删除的工程反复出现在pycharm里面。解决步骤:1,打开pycharm,点击File——>CloseProjects(有的是CloseProjectsinCurrentWindow);2,然后会出现一个小窗口,左边一列为你的工程项目,选择想删除的项目,点击右上角的叉号;3,最后打开你想删除的工程项目的文件路径,左键点击选中该项目,然后按…

    2022年8月29日
    5
  • matlab画柱状图和折线图放在一起的_matlab画三维柱状图详解

    matlab画柱状图和折线图放在一起的_matlab画三维柱状图详解种类用categorical函数定义柱状图上的数值用text补充上箭头用annotation函数画出柱状图的颜色由FaceColor决定

    2022年8月3日
    5
  • js es6转es5在线_es6 array

    js es6转es5在线_es6 arrayes6尚未得到所有浏览器的全部支持将es6转化为es5必要。下面将利用babel转换js语法首先安装npminstall–save-dev@babel/core@babel/cli@babel/preset-env@babel/node在项目中创建babel.config.js文件(不可更改)在文件中写入如下代码constpresets=[ [“@babel/env”,{ targets:{ ie:”8″, edge:”17″, firef

    2022年9月24日
    3

发表回复

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

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