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  

浏览器兼容性

No compatibility data found. Please contribute data for "javascript/promise" to the MDN compatibility data repository.

相关链接

文档标签和贡献者

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