MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

Promise.all()

该新特性属于 ECMAScript 2015(ES6)规范,在使用时请注意浏览器兼容性。

概述

Promise.all(iterable) 方法指当所有在可迭代参数中的 promises 已完成,或者第一个传递的 promise(指 reject)失败时,返回 promise。

语法

Promise.all(iterable);

参数

iterable
一个可迭代对象,例如 Array。参见 iterable.

返回值

一个 Promise,它将在上述可迭代对象中的所有 Promise 被 resolve 之后被 resolve,或者在任一 Promise 被 reject 后被 reject。

描述

Promise.all 是当所有给定的可迭代完成时执行 resolve,或者任何  promises 失败时执行 reject。

如果传递任何的 promises rejects ,所有的 Promise 的值立即失败,丢弃所有的其他 promises,如果它们未 resolved。如果传递任意的空数组,那么这个方法将立刻完成。

示例

使用 Promise.all

Promise.all 等待所有代码的完成(或第一个代码的失败)。

var p1 = Promise.resolve(3);
var p2 = 1337;
var p3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, "foo");
}); 

Promise.all([p1, p2, p3]).then(values => { 
  console.log(values); // [3, 1337, "foo"] 
});

规范

规范 状态 备注
domenic/promises-unwrapping Standard Initial definition in an ECMA standard.
ECMAScript 2015 (6th Edition, ECMA-262)
Promise.all
Standard  

浏览器兼容性

Feature Chrome Edge Firefox Internet Explorer Opera Safari Servo
Basic Support32.0(Yes)29.0No support197.1No support
Feature Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Basic Support4.4.432.0(Yes)29No support(Yes)8.0

相关链接

文档标签和贡献者

 此页面的贡献者: rollinhup, Hushabyme, iugo, billcz, zilong-thu, fskuok
 最后编辑者: rollinhup,