Promise.race
Promise.race(Iterable<any>|Promise<Iterable<any>> input) -> Promise
Учитывая итерабельный объект (массивы являются Iterable), или промис итерабельного объекта, который производит промисы (или смесь промисов и значений), перебирает все значения в Iterable в массив и возвращает промис, который выполняется или отклоняется как только промис в массиве выполняется или отклоняется с соответствующим значением отклонения или выполнения.
Этот метод реализован только потому, что он есть в стандарте ES6. Если вы хотите запустить гонку промисов до выполнения, метод .any более уместен, поскольку он не определяет отклоняющийся промис как победителя. Он также имеет меньше неожиданностей: .race должен стать бесконечно ожидающим, если передан пустой массив, но передача пустого массива методу .any является более полезной RangeError
© 2013–2018 Petka Antonov
Licensed under the MIT License.
http://bluebirdjs.com/docs/api/promise.race.html