手写Promise.all

本文探讨了如何手写Promise.all,重点在于当所有Promise成功时才成功,一旦有任何一个失败则整体失败。同时,保证返回结果数组与输入数组位置一致。文章详细介绍了实现过程中的关键点,包括将输入转换为数组并确保所有元素都是Promise。
摘要由CSDN通过智能技术生成

一、Pormise.all

接受一个Promise对象组成的数组返回一个新的Promise,只有所有的Promise都成功才成功,只要有一个失败了就直接失败。成功的结果是每个Promise成功结果组成的数组失败的结果是Promise数组中失败的结果

  • 传入一个 Iterable,但大部分情况下是数组,以下以数组代替
  • 传入一个数组,其中可包含 Promise,也可包含普通数据
  • 数组中 Promise 并行执行
  • 但凡有一个 Promise 被 Reject 掉,Promise.all 失败
  • 保持输出数组位置与输入数组一致
  • 所有数据 resolve 之后,返回结果

二、实现

function pAll (_promises) {
   
  return new Promise
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值