Helion Bestsellery

Komunikacja z AI. Dla początkujących
  • Autor: Katarzyna Majzel-Pośpiech
  • Zniżka: 35%
  • Cena: 49.00 31.85 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328912724
  • ISBN: 978-83-289-1272-4
Dodaj Komunikacja z AI. Dla początkujących do koszyka

Helion Książka Dnia

Algorytmy w Pythonie. Techniki programowania dla praktyków
  • Autor: Piotr Wróblewski
  • Zniżka: 50%
  • Cena: 119.00 59.50 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328393684
  • ISBN: 978-83-283-9368-4
Dodaj Algorytmy w Pythonie. Techniki programowania dla praktyków do koszyka

Promise.any()

[ Leksykon ] [ JavaScript ] [ Metody ] [ Promise() ]

Promise.any()

[_] [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.any(iterable)

  

Przykłady:

const promiseA = new Promise((resolve, reject) => {
setTimeout(resolve, 400, "zadanie A"); // obietnica resolve
});
const promiseB = new Promise((resolve, reject) => {
setTimeout(reject, 200, "zadanie B"); // obietnica reject
});

Promise.any([promiseA, promiseB])
.then((value) => {
console.log("zadanie spełnione:", value);
})
.catch((reason) => {
console.error("zadanie niespełnione:", reason);
});
// zadanie A będzie spełnione

 

const promiseA = new Promise((resolve, reject) => {
reject("Koniec...");
});
const promiseB = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, "Witaj!");
});
Promise.any([promiseA, promiseB]).then((value) => { console.log(value); }

 

async function pobieranie(plik, nazwa) {
const test = await fetch(plik);
if (!test.ok) {
throw new Error("plik nie istnieje, status: ${response.status}");
}
const blobinfo = await response.blob();
return [blobinfo, nazwa];
}
const fotoA = pobieranie("fotoa.jpg", "fotoA");
const fotoB = pobieranie("fotob.jpg", "fotoB");
const fotoC = pobieranie("fotoc.jpg", "fotoC");
Promise.any([fotoA, fotoB, fotoC]).then(([blob1, nazwa]) => {
const objPlikuURL = URL.createObjectURL(blob1);
const image = document.createElement("img");
image.src = objPlikuURL;
image.alt = nazwa;
document.body.appendChild(image);
}).catch((e) => {
console.error(e);
});

 

const promiseA = new Promise((resolve, reject) => {
reject("Koniec...");
});
Promise.any([promiseA]).catch((err) => {
console.log(err);
});

 

 

Opis:
Metoda Promise.any() statyczna przyjmuje jako dane wejściowe iterowalne obietnice i zwraca pojedynczy element Promise. Ta zwrócona obietnica spełnia się, gdy spełni się którakolwiek z obietnic danych wejściowych, z tą pierwszą wartością spełnienia. Odrzuca, gdy wszystkie obietnice danych wejściowych zostaną odrzucone, w tym także wtedy, gdy zostanie przekazana pusta iterowalna wartość, zawierający tablicę AggregateError powodów odrzucenia. Parametry iterable - Iterowalna jak Array obietnica. Wartość zwracana Promise. Już odrzucony, jeśli iterable przekazany jest pusty. Asynchronicznie spełnione, gdy którakolwiek z obietnic w danym iterable spełni się. Wartość spełnienia to wartość spełnienia pierwszej obietnicy, która została spełniona. Asynchronicznie odrzucone, gdy wszystkie obietnice w danym iterable odrzuceniu. Powód odrzucenia to właściwość AggregateError zawierająca tablicę powodów odrzucenia errors. Błędy są w kolejności przekazanych obietnic, niezależnie od kolejności realizacji. Jeśli iterable przekazana informacja nie jest pusta, ale nie zawiera żadnych oczekujących obietnic, zwrócona obietnica jest nadal asynchronicznie zamiast synchronicznie odrzucana. Metoda ta Promise.any() należy do metod obiecującej współbieżności.
Ta metoda jest przydatna do zwracania pierwszej spełnionej obietnicy. Powoduje zwarcie po spełnieniu obietnicy, więc nie czeka na wypełnienie pozostałych obietnic, gdy już ją znajdzie. W przeciwieństwie do Promise.all(), które zwraca tablicę wartości spełnienia, otrzymujemy tylko jedną wartość spełnienia zakładając, że spełni się co najmniej jedna obietnica. Może to być korzystne, jeśli potrzebujemy tylko jednej obietnicy do spełnienia, ale nie obchodzi nas, która z nich zostanie spełniona. Zwróć uwagę na kolejną różnicę: ta metoda odrzuca po otrzymaniu pustej iteracji, ponieważ, zgodnie z prawdą, iterowalność nie zawiera żadnych elementów spełniających. Możesz porównać Promise.any() i Promise.all() z Array.some() i Array.every(). Ponadto w przeciwieństwie do metody Promise.race(), która zwraca pierwszą ustaloną wartość spełnienie lub odrzucenie, ta metoda zwraca pierwszą spełnioną wartość. Ta metoda ignoruje wszystkie odrzucone obietnice aż do pierwszej obietnicy, która się spełni.

Linki:
Promise.race() - Metoda spełnia się, gdy którakolwiek z obietnic zakończy jako pierwsza

 

 

 

 

 

Please publish modules in offcanvas position.