Middle
Aký je rozdiel medzi Promise.all a Promise.any?
sobes.tech AI
Odpoveď od AI
Promise.all čaká na dokončenie všetkých sľubov v iterovateľnom objekte. Ak sú všetky sľuby úspešne splnené, vráti sľub, ktorý sa vyrieši poľom výsledkov v rovnakom poradí ako vstupné sľuby. Ak je aspoň jeden sľub zamietnutý, vráti zamietnutý sľub s chybou prvého zamietnutého sľubu.
Promise.any čaká na dokončenie ktoréhokoľvek sľubu v iterovateľnom objekte. Hneď ako je akýkoľvek sľub úspešne splnený, vráti sľub, ktorý sa vyrieši hodnotou tohto sľubu. Ak sú všetky sľuby zamietnuté, vráti zamietnutý sľub s AggregateError, ktorý obsahuje pole chýb všetkých zamietnutých sľubov.
Porovnanie:
| Kritérium | Promise.all | Promise.any |
|---|---|---|
| Podmienka úspechu | Všetky sľuby sú úspešne splnené | Akýkoľvek sľub je úspešne splnený |
| Podmienka chyby | Aspoň jeden sľub je zamietnutý | Všetky sľuby sú zamietnuté |
| Výsledok úspechu | Pole výsledkov (v rovnakom poradí ako vstupné sľuby) | Hodnota prvého úspešne splneného sľubu |
| Výsledok chyby | Chyba prvého zamietnutého sľubu | AggregateError s poľom chýb všetkých zamietnutých sľubov |
| Použitie | Závislosť od všetkých asynchrónnych operácií | Závislosť od ktorejkoľvek asynchrónnej operácie |