Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. Promise
  6. Promise.any()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Promise.any()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2020 г..

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

Синтаксис

Promise.any(iterable);

Параметры

iterable

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

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

  • ИсполненныйPromise, если переданный итерируемый объект пуст.
  • Исполненный асинхронноPromise, если переданный итерируемый объект не содержит промисов.
  • Во всех других случаяхPromise со статусом ожидания(pending). Возвращённый промис будетисполнен(resolved/rejected)асинхронно (как только стэк вызовов окажется пустым), когда один (любой) промис изпереданного итерируемого объекта исполнится, либо все промисы будут отклонены.

Описание

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

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

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

  • Если передан пустой итерируемый объект, тогда метод возвращает (синхронно) выполненный промис.
  • Если один из переданных промисов исполнится успешно, или в переданном итерируемом объекте не содержится промисов, промис возвращённый из методаPromise.any асинхронно исполнится успешно.

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

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

  • Массив(Array) содержащий причины отклонения всех промисов переданных в итерируемом объекте, либо
  • ОбъектAggregateError, расширяющийError, который содержит указатель на массив(Array) исключений.

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

Specification
ECMAScript® 2026 Language Specification
# sec-promise.any

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

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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp