前端异步 一步一步详解手写Promise(二)

本文将深入探讨并手写Promise的几个关键方法,包括:promiseAll的实现,当所有任务成功时返回成功,任一失败则失败;promiseAny,只要有任一任务成功即为成功,全部失败才失败;promiseRace,返回最快完成的任务结果;以及promiseAllSettled,等待所有任务返回结果后再进行处理。
摘要由CSDN通过智能技术生成

上一篇我们写了手写了一个Promise,后面的一系列Promise 的方法就简单了,我们也来写一写

1:promiseAll 方法  是全部成功 ,返回的promise 就成功,一个失败就是失败,我们可以用一个数组把返回结果装起来,成功的时候就往里面添加数据 一旦素组的长度等于传进来数组的长度,那我们就Resolve

const myPromiseAll = (interable)=>{
  let count = 0;
  const res = [];// 装返回的结果
  return new Promise((resolve,reject)=>{

    const length = interable.length;
    if (length === 0) {
        return resolve(res);
    } 
    
    for(const [index,value] of interable.entries()){  
      Promise.resolve(value).then((data)=>{
        count ++;
        res[index] = data;
        if(count=== interable.lenght){
          resolve(res);//也就是数组的长度=传进来可遍历的长度 那就代表全部成功
        }
      }).catch(e=>{reject(e)})
    }
  })
}

2.promise.any  和all 相反,只要有一个成功就是成功,全部失败才是失败

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值