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)
Тип ошибки
Что пошло не так?
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);
}
}
}
См. также
© 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