Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2020 browserübergreifend verfügbar.
Die Promise.any() statische Methode nimmt ein iterierbares Objekt von Promises als Eingabe und gibt ein einzelnes Promise zurück. Dieses zurückgegebene Promise wird erfüllt, wenn irgendeines der Eingabe-Promises erfüllt wird, wobei dies den ersten Erfüllungswert darstellt. Es wird abgelehnt, wenn alle Eingabe-Promises abgelehnt werden (einschließlich wenn ein leeres iterierbares Objekt übergeben wird), mit einem AggregateError, der ein Array von Ablehnungsgründen enthält.
Ein iterierbares Objekt (wie ein Array) von Promises.
Ein Promise, das:
Die Promise.any() Methode ist eine der promise concurrency Methoden. Diese Methode ist nützlich, um das erste Promise zurückzugeben, das erfüllt wird. Sie bricht ab, nachdem ein Promise erfüllt wird, sodass sie nicht auf die anderen Promises wartet, sobald eines gefunden wurde.
Im Gegensatz zu Promise.all(), das ein Array von Erfüllungswerten zurückgibt, erhalten wir nur einen Erfüllungswert (vorausgesetzt, mindestens ein Promise wird erfüllt). Dies kann vorteilhaft sein, wenn wir nur möchten, dass ein Promise erfüllt wird, es uns aber egal ist, welches das ist. Beachten Sie einen weiteren Unterschied: Diese Methode lehnt bei Erhalt eines leeren iterierbaren Objekts ab, da das iterierbare Objekt tatsächlich keine Elemente enthält, die erfüllt werden. Sie können Promise.any() und Promise.all() mit Array.prototype.some() und Array.prototype.every() vergleichen.
Auch im Gegensatz zu Promise.race(), das den ersten abgewickelten Wert (entweder Erfüllung oder Ablehnung) zurückgibt, gibt diese Methode den ersten erfüllten Wert zurück. Diese Methode ignoriert alle abgelehnten Promises bis zu dem ersten Promise, das erfüllt wird.
Promise.any() wird mit dem ersten erfüllten Promise erfüllt, selbst wenn ein Promise zuerst abgelehnt wird. Dies steht im Gegensatz zu Promise.race(), das mit dem ersten abgeschlossenen Promise erfüllt oder abgelehnt wird.
Promise.any() lehnt mit einem AggregateError ab, wenn kein Promise erfüllt wird.
In diesem Beispiel haben wir eine Funktion, die ein Bild abrufen und ein Blob zurückgeben soll. Wir verwenden Promise.any(), um ein paar Bilder abzurufen und das erste verfügbare anzuzeigen (d.h. dessen Promise aufgelöst wurde).
| ECMAScript® 2027 Language Specification # sec-promise.any |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.