Junior — Middle
Kāda ir atšķirība starp funkcijām Promise.all un Promise.any, apstrādājot solījumus?
sobes.tech AI
Atbilde no AI
Promise.all pieņem masīvu ar solījumiem un atgriež jaunu solījumu, kas:
- tiek izpildīts, kad visi masīva solījumi veiksmīgi pabeidzas, atgriežot rezultātu masīvu tajā pašā secībā;
- tiek noraidīts, ja vismaz viens solījums tiek noraidīts, uzreiz ar šī solījuma kļūdu.
Promise.any pieņem masīvu ar solījumiem un atgriež solījumu, kas:
- tiek izpildīts, tiklīdz kāds no tiem veiksmīgi pabeidzas, atgriežot šī solījuma rezultātu;
- tiek noraidīts, ja visi solījumi tiek noraidīti, atgriežot AggregateError ar visu solījumu kļūdām.
Piemērs:
const p1 = Promise.reject('Kļūda 1');
const p2 = Promise.resolve('Veiksme 2');
const p3 = Promise.resolve('Veiksme 3');
Promise.all([p1, p2, p3])
.then(console.log) // netiks izsaukts
.catch(console.error); // parādīs 'Kļūda 1'
Promise.any([p1, p2, p3])
.then(console.log) // parādīs 'Veiksme 2'
.catch(console.error);