41.说说Promise自身的静态方法

41.说说Promise自身的静态方法

  1. Promise.all (有一个失败就失败,所有的都成功就成功)
  2. Promise.race (有一个成功就成功,有一个失败就失败)
  3. Promise.allSettled (所有的异步操作执行完毕之后,才返回)
  4. Promise.any (只要有一个成功就成功,所有的都失败,才失败)
  5. Promise.resolve (返回一个成功状态的promise对象)
  6. Promise.reject (返回一个失败状态的promise对象)

验证

Promise.all 一个失败及失败,都成功则成功


/* 1. Promise.all  一个失败及失败,都成功则成功 */
var a1 = Promise.resolve(1)
var a2 = Promise.resolve(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)


console.log(Promise.all([a1, a2, a3, a4]))
// [1,2,3,4]

var a1 = Promise.resolve(1)
var a2 = Promise.reject(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)

console.log(Promise.all([a1, a2, a3, a4]))
// 报错 返回 2

2. Promise.race 一个状态变化,就立刻返回


/* 2. Promise.race 一个状态变化,就立刻返回*/
var a1 = Promise.resolve(1)
var a2 = Promise.resolve(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.race([a1, a2, a3, a4]))
// 1

var a1 = Promise.reject(2)
var a2 = Promise.reject(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.race([a1, a2, a3, a4]))
// 2

3. Promise.allSettled 状态都变化完毕后,再返回

/* 3. Promise.allSettled 状态都变化完毕后,再返回 */
var a1 = Promise.resolve(1)
var a2 = Promise.resolve(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.allSettled([a1, a2, a3, a4]))
// [1,2,3,4]

var a1 = Promise.resolve(1)
var a2 = Promise.reject(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.allSettled([a1, a2, a3, a4]))
// [1,2,3,4]  // 其中reject的状态为失败,其他的状态为成功

4. Promise.any 一个成功及成功,都失败则失败,和all相反


/* 4. Promise.any 一个成功及成功,都失败则失败,和all相反 */
var a1 = Promise.resolve(1)
var a2 = Promise.resolve(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.any([a1, a2, a3, a4]))
// 1

var a1 = Promise.reject(1)
var a2 = Promise.reject(2)
var a3 = Promise.resolve(3)
var a4 = Promise.resolve(4)
console.log(Promise.any([a1, a2, a3, a4]))
// 2  

var a1 = Promise.reject(1)
var a2 = Promise.reject(2)
var a3 = Promise.reject(3)
var a4 = Promise.reject(4)
console.log(Promise.any([a1, a2, a3, a4]))
// 失败状态 AggregateError: All promises were rejected

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazy_tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值