Middle
Mis vahe on Promise.all ja Promise.any vahel?
sobes.tech AI
Vastus AI-lt
Promise.all ootab, kuni kõik iteratiivse objekti lubadused on täidetud. Kui kõik lubadused on edukalt täidetud, tagastab see lubaduse, mis lahendatakse tulemuste massiiviga samas järjekorras nagu sisendlubadused. Kui vähemalt üks lubadus lükatakse tagasi, tagastab see lubaduse, mis lükatakse tagasi vea esimese tagasi lükatud lubaduse puhul.
Promise.any ootab, kuni ükskõik lubadus on täidetud. Kui ükskõik milline lubadus on edukalt täidetud, tagastab see lubaduse, mis lahendatakse selle lubaduse väärtusega. Kui kõik lubadused lükatakse tagasi, tagastab see lubaduse, mis lükatakse tagasi AggregateError-iga, mis sisaldab kõigi tagasi lükatud lubaduste vigu.
Võrdlus:
| Kriteerium | Promise.all | Promise.any |
|---|---|---|
| Edu tingimus | Kõik lubadused on edukalt täidetud | Iga lubadus on edukalt täidetud |
| Vea tingimus | Iga lubadus lükatakse tagasi | Kõik lubadused lükatakse tagasi |
| Edu tulemus | Tulemuste massiiv (samamoodi nagu sisendlubadused) | Esimese edukalt täidetud lubaduse väärtus |
| Vea tulemus | Esimese tagasi lükatud lubaduse viga | AggregateError koos kõigi tagasi lükatud lubaduste vigadega |
| Kasutus | Sõltuvus kõigist asünkroonsetest operatsioonidest | Sõltuvus ükskõik millisest asünkroonsest operatsioonist |