当前位置: 首页 > news >正文

Promise.all 详解

1. 什么是 Promise.all?

Promise.all 是 JavaScript 中 Promise 对象的一个静态方法,用于并行执行多个异步操作,并在所有操作都完成后得到结果。

它接受一个可迭代对象(通常是数组)作为参数,数组中包含多个 Promise 实例,返回一个新的 Promise。

Promise.all(iterable);

  • 参数iterable 是一个可迭代对象(如数组),其中的每个元素都是一个 Promise 或者非 Promise 值。
  • 返回值:返回一个新的 Promise。

2. 工作原理

  • Promise.all 会等待传入的所有 Promise 都变成 fulfilled(成功),然后返回一个新的 Promise,该 Promise 的状态变为 fulfilled,且返回一个数组,数组中包含所有 Promise 的结果,顺序与传入的 Promise 顺序一致。
  • 如果传入的任意一个 Promise 变为 rejected(失败)Promise.all 返回的 Promise 会立即变为 rejected,且失败原因就是第一个失败的 Promise 的原因,后续的 Promise 结果会被忽略。

const a1 = Promise.resolve(1);

const a2 = new Promise((resolve) => setTimeout(() => resolve(2), 1000));

const a3 = Promise.resolve(3);

Promise.all([a1, a2, a3]) .then(results => {

console.log(results);

// [1, 2, 3]

}) .catch(error => { console.error('有一个Promise失败了:', error); });

相关文章:

  • ch10 题目参考思路
  • 突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌
  • 文章记单词 | 第87篇(六级)
  • Android App CAN通信测试
  • elementUI源码学习
  • OpenCV CUDA模块中矩阵操作------归一化与变换操作
  • 反射机制详细说明
  • 2025年渗透测试面试题总结-安恒[实习]安全服务工程师(题目+回答)
  • 遥感图像露天矿区检测数据集VOC+YOLO格式1542张1类别
  • 智能裂变引擎 商业增长利器 —— 专业推客系统耀世而来
  • Sprnig MVC 如何统一异常处理 (Exception Handling)?
  • Java—— 方法引用 : :
  • HANA数据库死锁
  • 2025年渗透测试面试题总结-安恒[社招]售前工程师(题目+回答)
  • Flink SQL、Hudi 、Doris在数据上的组合应用
  • 【数据结构】二分查找-LeftRightmost
  • AWS Elastic Beanstalk控制台部署Spring极简工程(LB版)
  • 若依框架的Excel导出功能
  • 前端流行框架Vue3教程:18. _组件数据传递
  • LIIGO ❤️ RUST 12 YEARS
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查
  • 河南:响鼓重锤对违规吃喝问题露头就打、反复敲打、人人喊打
  • 今年有望投产里程已近3000公里,高铁冲刺谁在“狂飙”?
  • 著名词作家陈哲逝世,代表作《让世界充满爱》《同一首歌》等
  • 证券日报:降准今日正式落地,年内或还有降准空间
  • 小耳朵等来了春天:公益义诊筛查专家走进安徽安庆