Promise.all() 方法接收单个可迭代对象(如数组)作为参数,并返回一个promise。每个Promise都用一个数值进行了决议,对Promise.all() 的调用创建了新的 Promise p4。这些值的存储顺序保持了待决议(resolve)的Promise顺序,与完成的先后顺序无关,因此可以将结果匹配到每个Promise。如果任意Promise被拒绝,则p4会立即拒绝,不必等其他 Promise结束。

/* eslint-disable prefer-promise-reject-errors,eol-last */
let p1 = new Promise((resolve, reject) => resolve(42))
let p2 = new Promise((resolve, reject) => reject(43))
let p3 = new Promise((resolve, reject) => resolve(44))let p4 = Promise.all([p1, p2, p3])
let p5 = Promise.all([p1, p3])
p1.then(v=>console.log('p1 then: ' + v)) // p1 then: 42
p4.then(v=>console.log('p4 then: ' + v)) // 不执行
p4.catch(v=>console.log('catch: ' + v)) // catch: 43 p2被拒绝,p4的拒绝处理函数立即调用,不会等p1和p3结束执行。但p1和p2仍然会执行。
p5.then(v=>{console.log(Array.isArray(v)) // trueconsole.log(v) // [ 42, 44 ]
})

转载于:https://www.cnblogs.com/dodocie/p/9055240.html

关于Promise.all相关推荐

  1. setTimeout、setInterval、promise、async/await的顺序详解(多种情况,非常详细~)

    本文很长,列举的情况很多. 在阅读本文之前,如果您有充足的时间,请新建一个项目与本文一同实践. 每段代码都有对应的解释,但是自己动手尝试印象才会更深哦~ setInterval:表示多久执行一次,需要 ...

  2. C++多线程:异步操作std::async和std::promise

    文章目录 std::async 简介 使用案例 std::promise 简介 成员函数 总结 之前的文章中提到了C++多线程中的异步操作机制 C++ 多线程:future 异步访问类(线程之间安全便 ...

  3. ES6中的Promise详解

    Promise 在 JavaScript 中很早就有各种的开源实现,ES6 将其纳入了官方标准,提供了原生 api 支持,使用更加便捷. 定义 Promise 是一个对象,它用来标识 JavaScri ...

  4. 关于ES6中Promise的应用-顺序合并Promise,并将返回结果以数组的形式输出

    1.Promise 基础知识梳理 创建一个Promise实例 const promise = new Promise(function(resolve, reject) {if (success){r ...

  5. promise实现多个请求并行串行执行

    早上查资料,偶然发现这个话题,发现自己并不会,于是乎,下来研究了一下. 想想之前我们用jquery写请求的时候,要实现请求的串行执行,我们可能是这么做的. $.ajax({url: '',data: ...

  6. 异步编程之Promise(2):探究原理

    异步编程系列教程: (翻译)异步编程之Promise(1)--初见魅力 异步编程之Promise(2):探究原理 异步编程之Promise(3):拓展进阶 异步编程之Generator(1)--领略魅 ...

  7. 自己动手写cpu pdf_自己动手写 Promise

    这段时间在学习Promise,但始终不得要领.为了更好地理解Promise,我决定自己实现一个简易版的Promise,以学习Promise工作原理.该工程名为ToyPromise,仓库地址如下: ht ...

  8. promise 和 async await区别

     什么是Async/Await? async/await是写异步代码的新方式,以前的方法有回调函数和Promise. async/await是基于Promise实现的,它不能用于普通的回调函数. as ...

  9. Promise - js异步控制神器

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 首先给来一个简单的demo看看Promise是怎么使用的: <!DOCTYPE html> ...

  10. Promise的实例用法

    设定函数 function chiFan() {return new Promise(function(resolve, reject) {console.log("chiFan" ...

最新文章

  1. 暑期集训2:ACM基础算法 例1:POJ-1064
  2. 微服务如何设计一个配置中心
  3. Django创建项目后,项目文件夹下的组成部分
  4. springboot配置index
  5. Apache Camel 2.19发布–新增功能
  6. Java 8 Lambda表达式的函数式编程– Monads
  7. equalsignorecase用法
  8. js中eval 详解
  9. python装饰器@深度加工(三分钟读懂)
  10. GNUstep 运行gui程序
  11. Go Tools安装
  12. win10系统显示打印机未连接到服务器,win10系统连接打印机提示“打印处理器不存在”如何解决...
  13. 计算机网络管理员路由与交换深圳积多少分,2020年深圳积分入户,哪些加分的证书总结?...
  14. 电大2019秋c语言程序设计,中央电大秋C语言程序设计A试题
  15. 阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
  16. 机器学习之变分推断(三)基于平均场假设变分推断与广义EM
  17. 一文带你秒懂数据结构与算法的三大要素、五大特征!
  18. threejs fire 火焰与烟雾效果
  19. dapr的consistent hash
  20. 大数据概况以及Hadoop生态系统

热门文章

  1. Java web对试卷进行单选多选答题进行打分_2020年大学慕课Java程序设计作业答案...
  2. java面试题十七 switch使用范围
  3. 数据分析师的自我修养丨如何进阶为数据科学家
  4. 实训课俄罗斯方块之二授课计划总体规划
  5. python oop 继承_oop-在Python中继承方法的文档字符串
  6. 《剑指offer》栈的压入、弹出序列
  7. python数字图像处理-图像噪声与去噪算法
  8. Spring Boot引用本地jar包
  9. Maven plugins和pluginManagement的区别概述
  10. 推荐系统中使用ctr排序的f(x)的设计-传统模型篇