--- title: Promise.any() slug: Web/JavaScript/Reference/Global_Objects/Promise/any translation_of: Web/JavaScript/Reference/Global_Objects/Promise/any ---
{{JSRef}}

Метод Promise.any() принимает итерируемый объект содержащий объекты промисов {{JSxRef("Promise")}}. Как только один из промисов (Promise) выполнится успешно (fullfill), метод возвратит единственный объект Promise со значением выполненного промиса. Если ни один из промисов не завершится успешно (если все промисы завершатся с ошибкой, т.е. rejected), тогда возвращённый объект Promise будет отклонён (rejected) с одним из значений: массив содержащий причины ошибки (отклонения), или {{JSxRef("AggregateError")}} — подкласс {{JSxRef("Error")}}, который объединяет выброшенные ошибки вместе. По существу, метод Promise.any() является противоположностью для {{JSxRef("Promise.all()")}}.

Warning! The Promise.any() method is experimental and not fully supported by all browsers. It is currently in the TC39 Candidate stage (Stage 3).

Синтаксис

Promise.any(iterable);

Параметры

iterable
Итерируемый(iterable) объект, например {{JSxRef("Array")}}.

Возвращаемое значение

Описание

Метод полезен, когда нужно вернуть первый исполненный промис. После того как один из промисов будет исполнен, метод не будет дожидаться исполнения остальных. В отличие от {{JSxRef("Promise.all()")}}, который содержит массив(Array) значений исполненных промисов, Promise.any() содержит только одно значение (при условии, что хотя бы один из промисов исполнен успешно). Такой подход может быть выгодным, когда нужно, чтобы выполнился только один промис, неважно какой. Также, в отличие от {{JSxRef("Promise.race()")}}, который возвращает промис, содержащий значение первого завершённого(resolved или rejected), этот метод возвращает промис содержащее значение первого успешно выполненного(resolved) промиса. Метод будет игнорировать исполнение промисов с ошибкой(rejection) вплоть до первого исполненного успешно (fullfilment).

Успешное исполнение(Fullfilment)

Если один из промисов исполнится успешно, возвращённый промис асинхронно исполнится успешно со значением выполненного промиса, независимо от завершения остальных промисов.

Исполнение с ошибкой(Rejection)

Если все переданные промисы будут отклонены (rejected), Promise.any асинхронно будет отклонено в одном из двух вариантов (которые ещё не были согласованы): либо

Спецификации

{{Specifications}}

Совместимость с браузерами

{{Compat}}

Смотрите также