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。