Middle
Jaký je rozdíl mezi Promise.all a Promise.any?
sobes.tech AI
Odpověď od AI
Promise.all čeká na dokončení všech slibů v iterovatelném objektu. Pokud jsou všechny sliby úspěšně splněny, vrátí slib, který se vyřeší polem výsledků ve stejném pořadí jako vstupní sliby. Pokud je alespoň jeden slib zamítnut, vrátí zamítnutý slib s chybou prvního zamítnutého slibu.
Promise.any čeká na dokončení libovolného ze slibů v iterovatelném objektu. Jakmile je jakýkoli slib úspěšně splněn, vrátí slib, který se vyřeší hodnotou tohoto slibu. Pokud jsou všechny sliby zamítnuty, vrátí zamítnutý slib s AggregateError, který obsahuje pole chyb všech zamítnutých slibů.
Porovnání:
| Kritérium | Promise.all | Promise.any |
|---|---|---|
| Podmínka úspěchu | Všechny sliby jsou úspěšně splněny | Jakýkoli slib je úspěšně splněn |
| Podmínka chyby | Jakýkoli slib je zamítnut | Všechny sliby jsou zamítnuty |
| Výsledek úspěchu | Pole výsledků (ve stejném pořadí jako vstupní sliby) | Hodnota prvního úspěšně splněného slibu |
| Výsledek chyby | Chyba prvního zamítnutého slibu | AggregateError s polem chyb všech zamítnutých slibů |
| Použití | Závislost na všech asynchronních operacích | Závislost na jakékoli asynchronní operaci |