Spec-Zone.ru › JavaScript

AggregateError: Ни один промис в Promise.any не был разрешен

Исключение JavaScript "No Promise in Promise.any was resolved" возникает, когда все промисы, переданные в Promise.any() отклонены. Это единственное встроенное использование AggregateError.

Сообщение

AggregateError: All promises were rejected (V8-based)
AggregateError: No Promise in Promise.any was resolved (Firefox)
AggregateError (Safari)

Тип ошибки

AggregateError

Что пошло не так?

Promise.any() отклоняется только тогда, когда отклонены все промисы, переданные ему. Вам следует получить доступ к errors, чтобы получить массив причин отклонения. См. Использование промисов для получения дополнительной информации о том, как обрабатывать асинхронно отклоненные промисы. Эта ошибка также возникает, когда Promise.any() получает пустой итерируемый объект.

Примеры

Пустой итерируемый объект

Promise.any([]).catch((error) => {
  console.error(error); // AggregateError: No Promise in Promise.any was resolved
});

Обработка всех отклонений

const promises = [
  fetch("/data-location1"),
  fetch("/data-location1"),
  fetch("/data-location1"),
];

Promise.any(promises)
  .then((value) => console.log(value))
  .catch((error) => {
    // None of the fetches were successful
    for (const e of error.errors) {
      console.error(e);
    }
  });

// Using await
async function fetchFirstSuccessful() {
  try {
    const value = await Promise.any(promises);
    console.log(value);
  } catch (error) {
    for (const e of error.errors) {
      console.error(e);
    }
  }
}

См. также

  • AggregateError
  • Promise.any()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Promise_any_all_rejected

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API