Promise(1)

ECMAScript 6新增的引用类型Promise,可以通过new操作符实例化,创建Promise时候需要传入执行器函数作为参数。
Promise有三个状态:待定(pending),兑现(fulfiled),拒绝(rejected)
待定为Promise最初始的状态,在这个状态下Promise可以转换成兑现或者拒绝的状态,一旦发送改变,Promise的状态就再也不发生改变。
Promise的状态是私有的,不能直接通过JavaScript检测到,Promise的状态也不能被外部的JavaScript代码修改。
通过控制执行器函数来控制Promise的状态,执行器函数主要有两个职责:初始化Promise的异步行为和控制状态的最终转换。其中控制Promise状态的转换是通过调用它的两个函数参数实现的。
这两个参数是resolve()和reject()。调用resolve()会使Promise的状态变为兑现,调用reject()会使Promise的状态变为拒绝,另外调用reject()也会抛出错误
代码以及控制台输出如下

  <script>
       let p = new Promise((resolve,reject) => {
            console.log('Promise对象已经初始化')
            resolve(1)
        })
        console.log(p)
        let p2 = Promise.resolve(2)
        console.log(p2)
        //以上代码效果等同
        //resolve如果传入参数为Promise对象,那它的行为类似一个空包装
        //所以以下两行代码效果相等
        let p3 = Promise.resolve(3)
        console.log(p3===Promise.resolve(p3))
        //Promise.reject()接受一个参数,该参数为拒绝Promise的理由
        //但没有照搬Promise.resolve的幂等逻辑
        //如果传入一个Promise对象则该对象为拒绝Promise的理由
        let p4 = Promise.reject(4)
        console.log(p4)
        let p5 = Promise.reject(p4)
        console.log(p5)
    </script>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值