JavaScript Promise.race()
定义和用法
Promise.race() 方法从一组 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.race([myPromise1, myPromise2]).then((x) => {
myDisplay(x);
});
语法
Promise.race(iterable)
参数
| 参数 | 描述 |
|---|---|
| iterable | Promise 的数组。 |
返回值
| 类型 | 描述 |
|---|---|
| Object | 新的 Promise 对象。 |
浏览器支持
Promise.race() 是 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.race() 不支持 Internet Explorer。