AggregateError: Kein Promise in Promise.any wurde aufgelöst
Die JavaScript-Ausnahme "Kein Promise in Promise.any wurde aufgelöst" tritt auf, wenn alle Promises, die an Promise.any()
übergeben wurden, abgelehnt werden. Es ist die einzige eingebaute Verwendung von AggregateError
.
Meldung
AggregateError: All promises were rejected (V8-based) AggregateError: No Promise in Promise.any was resolved (Firefox) AggregateError (Safari)
Fehlertyp
Was ist schiefgelaufen?
Promise.any()
schlägt nur fehl, wenn alle übergebenen Promises abgelehnt werden. Sie sollten auf errors
zugreifen, um das Array der Ablehnungsgründe zu erhalten. Siehe Verwendung von Promises für weitere Informationen darüber, wie asynchron abgelehnte Promises behandelt werden. Dieser Fehler wird auch ausgelöst, wenn Promise.any()
ein leeres Iterable erhält.
Beispiele
Leeres Iterable
js
Promise.any([]).catch((error) => {
console.error(error); // AggregateError: No Promise in Promise.any was resolved
});
Umgang mit allen Ablehnungen
js
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);
}
}
}