[ Leksykon ] [ JavaScript ] [ Metody ] [ Promise() ]
Promise.allSettled()
[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]
Promise.allSettled(iterable)
Przykłady:
Metoda Promise.allSettled() statyczna przyjmuje jako dane wejściowe iterowalne Promise i zwraca pojedynczy plik Promise. Ta zwrócona obietnica jest spełniona, gdy wszystkie obietnice danych wejściowych zostaną spełnione, z tablicą obiektów opisujących wynik każdej obietnicy. W tym gdy przekazana zostanie pusta iteracja. Spełnione, jeśli iterable przekazany jest pusty.
const promiseA = Promise.resolve("TAK!");
const promiseB = Promise.resolve(5);
const promiseC = new Promise((resolve, reject) => {
setTimeout(reject, 1000, "Witaj!");
});
const promiseD = [promiseA, promiseB, promiseC];
Promise.allSettled([promiseD]).then((results) => results.forEach((result) => console.log(result.status)));
// zwruci wynik
// "fulfilled"
// "fulfilled"
// "rejected"
const promiseA = Promise.resolve(5);
const promiseB = 2;
const promiseC = new Promise((resolve) => setTimeout(() => resolve(10), 0));
const promiseB = Promise.reject(new Error("Nie działa!"));
Promise.allSettled([promiseA, promiseB, promiseC, promiseD]).then((values) => console.log(values));
// [
// { status: 'fulfilled', value: 5 },
// { status: 'fulfilled', value: 2 },
// { status: 'fulfilled', value: 10 },
// { status: 'rejected', reason: Nie działa!}
// ]
Spełnione asynchronicznie, kiedy wszystkie obietnice w danym iterable zostały spełnione (spełnione fulfilled lub odrzucone rejected). Wartość spełnienia to tablica obiektów, z których każdy opisuje wynik jednej obietnicy w iterable, w kolejności zrealizowanych obietnic, niezależnie od kolejności realizacji. Każdy obiekt wynikowy ma następujące właściwości:
status (ciąg, albo fulfilled lub rejected, wynik ostateczny stan obietnicy,
value występuje tylko wtedy, gdy status jest fulfilled, wartość, z jaką spełniono obietnicę,
reason występuje tylko wtedy, gdy status jest rejected, gdy obietnica została odrzucona,
Jeśli iterable przekazana nie jest pusta, ale nie zawiera żadnych oczekujących obietnic, zwrócona obietnica jest nadal realizowana asynchronicznie zamiast synchronicznie. Metod współbieżności. Promise.allSettled() jest używany, gdy masz wiele zadań asynchronicznych, których pomyślne wykonanie nie jest zależne od siebie, lub chcesz znać wynik każdej obietnicy.
Opis:
Promise.allSettled() statyczna przyjmuje jako dane wejściowe iterowalne obietnice i zwraca pojedynczy element Promise. Ta zwrócona obietnica zostaje spełniona, gdy wszystkie obietnice danych wejściowych zostaną spełnione w tym także wtedy, gdy zostanie przekazana pusta funkcja iterowalna z tablicą obiektów opisujących wynik każdej obietnicy. Parametry iterable - Iterowalna jak Array obietnica. Wartość zwracana Promise Już spełnione, jeśli iterable przekazane jest puste. Asynchronicznie spełnione, gdy wszystkie dane obietnice iterable zostały spełnione spełnione lub odrzucone. Wartość spełnienia to tablica obiektów, z których każdy opisuje wynik jednej obietnicy w iterable kolejności przekazywanych obietnic, niezależnie od kolejności realizacji. Każdy obiekt wynikowy ma następujące właściwości: status - ciąg znaków albo "fulfilled" lub "rejected" wskazujący ostateczny stan obietnicy. value - występuje tylko jeśli status jest "fulfilled". Wartość, z jaką obietnica została spełniona. reason - występuje tylko jeśli status jest "rejected". Powód, dla którego obietnica została odrzucona. Jeśli iterable przekazana informacja nie jest pusta, ale nie zawiera żadnych oczekujących obietnic, zwrócona obietnica jest nadal spełniona asynchronicznie zamiast synchronicznie. Metoda ta Promise.allSettled() należy do metod obiecującej współbieżności.
Promise.allSettled() jest zwykle używana, gdy masz wiele zadań asynchronicznych, których pomyślne wykonanie nie jest od siebie zależne, lub gdy zawsze chcesz znać wynik każdej obietnicy. Dla porównania Obietnica zwrócona przez Promise.all() może być bardziej odpowiednia, jeśli zadania są od siebie zależne lub jeśli chcesz natychmiast odrzucić którekolwiek z nich.
Linki: