--- title: Promise.any() slug: Web/JavaScript/Reference/Global_Objects/Promise/any tags: - JavaScript - Promise - Експериментальний - метод translation_of: Web/JavaScript/Reference/Global_Objects/Promise/any ---
{{JSRef}}

Promise.any() приймає ітерабельний об'єкт з об'єктами {{JSxRef("Promise")}} та, як тільки один з промісів виконується, вертає єдиний проміс, який вирішується зі значенням цього проміса. Якщо жодний проміс не виконався (якщо усі надані проміси були відхилені), тоді повернений проміс буде відхилено з об'єктом, який досі є предметом обговорення: або масив причин відхилення, або {{JSxRef("AggregateError")}}, новий підклас {{JSxRef("Error")}}, який поєднує окремі помилки. Найголовніше, цей метод є протилежністю методу {{JSxRef("Promise.all()")}}.

Застереження! Метод Promise.any() є експериментальним та не повністю підтримується усіма переглядачами. Він наразі на стадії TC39 Candidate stage (стадія 3).

Синтаксис

Promise.any(iterable);

Параметри

iterable
Ітерабельний об'єкт, такий як {{JSxRef("Array")}}.

Значення, що повертається

Опис

Цей метод корисний для повернення першого проміса, який виконується. Він завершується після виконання проміса, тому не очікує на завершення інших промісів, як тільки його знаходить. На відміну від {{JSxRef("Promise.all()")}}, який вертає масив вирішених значень, ми отримуємо лише одне вирішене значення (за умови, що принаймні один проміс вирішується). Це може бути вигідно, якщо нам потрібно, щоб лише один проміс було вирішено, і нам байдуже, який саме. Також, на відміну від {{JSxRef("Promise.race()")}}, який вертає перше встановлене значення, цей метод вертає перше вирішене значення. Цей метод ігноруватиме усі відхилені проміси до першого вирішеного проміса.

Виконання

Якщо будь-який з переданих промісів виконається, повернений проміс асинхронно виконується зі значенням виконаного проміса, незалежно від того, чи були інші проміси виконані чи відхилені.

Відхилення

Якщо усі передані проміси було відхилено, Promise.any асинхронно відхиляється з одним з двох варіантів (щодо яких ще не дійшли згоди): 

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

Специфікація
ESNext Promise.any Proposal

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.Promise.any")}}

Див. також