该新特性属于 ECMAScript 2015(ES6)规范,在使用时请注意浏览器兼容性。
概述
Promise.all(iterable)
方法返回一个promise,该promise会等iterable参数内的所有promise都被resolve后被resolve,或以第一个promise被reject的原因而reject 。
语法
Promise.all(iterable);
参数
描述
结果是promise的一组值。如果传入的可迭代数组中某项不是一个promise,该项会被用Promise.resolve
转换为一个promise。如果任一传入的promise被拒绝了,all Promise立刻带着该promise的拒绝原因进入拒绝(rejected)状态,不再理会其它传入的promise是否被解决。
示例
var promise = Promise.resolve(3); Promise.all([true, promise]) .then(values => { console.log(values); // [true, 3] });
规范
规范 | 状态 | 备注 |
---|---|---|
domenic/promises-unwrapping | 草稿 | 标准化工作在这里进行 |
ECMAScript 2015 (6th Edition, ECMA-262) Promise.all |
Standard | ECMA规范的首次定义 |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 32 | 29.0 (29.0) | 未实现 | 19 | 7.1 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|
Basic support | 未实现 | 29.0 (29.0) | 未实现 | 未实现 | iOS 8 | 32 |