← Back To API Reference

Promise.race

Promise.race(Iterable<any>|Promise<Iterable<any>> input) -> Promise

给定一个Iterable(数组是Iterable),或者一个可迭代的 promise,它产生 promise(或 promise 和值的混合),迭代遍历 Iterable 中所有的值放入一个数组中,并当一个 promise 在数组中以最快的速度被履行或拒绝时,它就会使用各自的拒绝原因或履行值返回一个被履行或拒绝的 promise。

并行执行,一旦有一个 promise 被解决或拒绝就停止并返回

这个方法只是在 ES6 标准中才实现的。如果你想使 promise 竞争履行(也就是说,看看谁先履行)的话,.any 方法是更合适的,因为它不限制被拒绝的承诺作为赢家。没什么意外:如果传递一个空的数组,.race 必须变成无限的等待,但将一个空的数组传递给 .any 会产生 RangeError