Junior — Middle
Care este diferența dintre funcțiile Promise.all și Promise.any în procesarea promisiunilor?
sobes.tech AI
Răspuns de la AI
Promise.all acceptă un array de promisiuni și returnează o nouă promisiune care:
- se rezolvă atunci când toate promisiunile din array sunt finalizate cu succes, returnând un array de rezultate în aceeași ordine;
- este respinsă dacă cel puțin una dintre promisiuni este respinsă, imediat cu eroarea acelei promisiuni.
Promise.any acceptă un array de promisiuni și returnează o promisiune care:
- se rezolvă imediat ce oricare dintre promisiuni se finalizează cu succes, returnând rezultatul acelei promisiuni;
- este respinsă dacă toate promisiunile sunt respinse, returnând un AggregateError cu erorile tuturor promisiunilor.
Exemplu:
const p1 = Promise.reject('Eroare 1');
const p2 = Promise.resolve('Succes 2');
const p3 = Promise.resolve('Succes 3');
Promise.all([p1, p2, p3])
.then(console.log) // nu va fi apelat
.catch(console.error); // va afișa 'Eroare 1'
Promise.any([p1, p2, p3])
.then(console.log) // va afișa 'Succes 2'
.catch(console.error);