Junior — Middle
Wat is het verschil tussen de functies Promise.all en Promise.any bij het verwerken van beloftes?
sobes.tech AI
Antwoord van AI
Promise.all accepteert een array van beloftes en retourneert een nieuwe belofte die:
- wordt opgelost wanneer alle beloftes in de array succesvol zijn afgerond, en een array van resultaten in dezelfde volgorde teruggeeft;
- wordt afgewezen als ten minste één van de beloftes wordt afgewezen, onmiddellijk met de fout van die belofte.
Promise.any accepteert een array van beloftes en retourneert een belofte die:
- wordt opgelost zodra één van de beloftes succesvol wordt afgerond, en het resultaat van die belofte teruggeeft;
- wordt afgewezen als alle beloftes worden afgewezen, met een AggregateError die de fouten van alle beloftes bevat.
Voorbeeld:
const p1 = Promise.reject('Fout 1');
const p2 = Promise.resolve('Succes 2');
const p3 = Promise.resolve('Succes 3');
Promise.all([p1, p2, p3])
.then(console.log) // wordt niet aangeroepen
.catch(console.error); // toont 'Fout 1'
Promise.any([p1, p2, p3])
.then(console.log) // toont 'Succes 2'
.catch(console.error);