Baseline Widely available
Die statische Methode Promise.allSettled()
nimmt ein Iterable von Promises als Eingabe entgegen und gibt ein einzelnes Promise
zurück. Dieses zurückgegebene Promise wird erfüllt, wenn alle Promises der Eingabe abgeschlossen sind (einschlieÃlich wenn ein leeres Iterable übergeben wird), mit einem Array von Objekten, die das Ergebnis jedes einzelnen Promises beschreiben.
const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) =>
setTimeout(reject, 100, "foo"),
);
const promises = [promise1, promise2];
Promise.allSettled(promises).then((results) =>
results.forEach((result) => console.log(result.status)),
);
// Expected output:
// "fulfilled"
// "rejected"
Syntax
Promise.allSettled(iterable)
Parameter
Rückgabewert
Ein Promise
, das:
Bereits erfüllt ist, wenn das übergebene iterable
leer ist.
Asynchron erfüllt ist, wenn alle Promises im gegebenen iterable
abgeschlossen sind (entweder erfüllt oder abgelehnt). Der Erfüllungswert ist ein Array von Objekten, von denen jedes das Ergebnis eines Promises im iterable
beschreibt, in der Reihenfolge der übergebenen Promises, unabhängig von der Reihenfolge des Abschlusses. Jedes Ergebnisobjekt hat die folgenden Eigenschaften:
status
Ein String, entweder "fulfilled"
oder "rejected"
, der den endgültigen Zustand des Promises angibt.
value
Nur vorhanden, wenn status
"fulfilled"
ist. Der Wert, mit dem das Promise erfüllt wurde.
reason
Nur vorhanden, wenn status
"rejected"
ist. Der Grund, aus dem das Promise abgelehnt wurde.
Wenn das übergebene iterable
nicht leer ist, aber keine ausstehenden Promises enthält, wird das zurückgegebene Promise dennoch asynchron (statt synchron) erfüllt.
Die Promise.allSettled()
Methode ist eine der Methoden für Promise-Konkurrenz. Promise.allSettled()
wird typischerweise verwendet, wenn Sie mehrere asynchrone Aufgaben haben, die nicht voneinander abhängig sind, um erfolgreich abgeschlossen zu werden, oder wenn Sie das Ergebnis jedes Promises wissen möchten.
Im Vergleich dazu könnte das von Promise.all()
zurückgegebene Promise geeigneter sein, wenn die Aufgaben voneinander abhängig sind, oder wenn Sie bei einer Ablehnung einer davon sofort ablehnen möchten.
Promise.allSettled([
Promise.resolve(33),
new Promise((resolve) => setTimeout(() => resolve(66), 0)),
99,
Promise.reject(new Error("an error")),
]).then((values) => console.log(values));
// [
// { status: 'fulfilled', value: 33 },
// { status: 'fulfilled', value: 66 },
// { status: 'fulfilled', value: 99 },
// { status: 'rejected', reason: Error: an error }
// ]
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4