JavaScript Promise.all()

定义和用法

Promise.all() 方法从一组 Promise 返回一个单一的 Promise,当所有 Promise 都成功完成时。

实例

// 创建一个 Promise
const myPromise1 = new Promise((resolve, reject) => {
  setTimeout(resolve, 200, "国王");
});

// 创建另一个 Promise
const myPromise2 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, "女王");
});

// 两个 Promise 都成功,哪个更快?
Promise.all([myPromise1, myPromise2]).then((x) => {
  myDisplay(x);
});

亲自试一试

语法

Promise.all(iterable)

参数

参数 描述
iterable Promise 的数组。

返回值

类型 描述
Object 新的 Promise 对象。

浏览器支持

Promise.all() 是 ECMAScript 6 (ES6) 的特性。

自 2017 年 6 月以来,ES6 (JavaScript 2015) 在所有现代浏览器中都得到支持:

Chrome Edge Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Promise.all() 不支持 Internet Explorer。