promise.all具体实现

Promise.all在异步编程中扮演重要角色,避免了回调地狱,使异步逻辑更易读。它接收一个Promise实例数组,当所有实例都 resolve 时,返回的Promise才resolve,并按输入顺序返回结果。如果其中任何一个reject,整体就会reject并返回第一个失败的实例数据。本文将介绍其功能和一个简单的实现。
摘要由CSDN通过智能技术生成

简介

promise的地位不言而喻,凡是需要异步处理的现在基本都在使用promise; promise的出现解决了异步处理中回调地狱的问题,使得开发者可以使用同步的方式去写异步逻辑。开发体验得到极大的提升;同时Promise还提供了很多有用的工具函数。 这里着重说一下Promise.all方法;

功能

Promise.all实现将多个Promise实例包装成一个的功能。

  • 接受一个数组作为参数,每一项为一个Promise实例,如果不是,内部会用Promise.resolve转化。
  • 参数中的每个Promisereslove时,Promise.allreslove。且返回的顺序和参数顺序一致(可以保证多个异步任务返回的顺序),其中一个失败时,整体失败,返回失败的那个实例数据。

简单实现

function PromiseAll(promises = []) {
   
  return new Promise((resolve, reject) => {
   
    if (!Array.isArray(promises)) {
   
      reject('PromiseAll 参数必须为数组')
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值