ES6:promise对象

语法

  • new Promise(function(resolve, reject) { ... })

new Promise构造函数会返回一个实例,resolve和reject是作为函数的形式传递进去的,当resolve和reject函数被调用时,分别会将promise的状态改为完成或者失败。

 

属性

  • length:length属性的值始终为1(构造器参数的数目)
  • prototype:prototype属性指向promise构造函数的原型

 

方法

  • Promise.all(iterable)

这个方法返回一个新的promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败。这个新的promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值的数组作为成功回调的返回值,顺序跟iterable的顺序保持一致;如果这个新的promise对象触发了失败状态,它会把iterable里第一个触发失败的promise对象的错误信息作为它的失败错误信息。Promise.all方法常被用于处理多个promise对象的状态集合。

  • Promise.race(iterable)

当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象。

  • Promise.resolve(iterable)

返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法

  • Promise.reject(iterable)

返回一个状态由给定value决定的Promise对象。如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value) 来返回一个Promise对象,这样就能将该value以Promise对象形式使用。

 

Promise原型

  • console.log(Promise.prototype.constructor)  // ƒ Promise() { [native code] }

Promise的原型,返回的是Promise函数

 

创建Promise

let promisel = new Promise((resolve, reject) => {
    let a = 21;
    if (a > 10) {
        return resolve("success")
    } else {
        return reject("failure")
    }
})

promisel.then(res => {
    console.log(res)
}, err => {
    console.log(err)
})

then方法在成功的状态下才会触发。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值