Sobes.tech
Junior — Middle

Kuidas toimub mitme lubaduse samaaegne täitmine Promise.all abil ja kuidas nende tulemusi töödeldakse?

sobes.tech AI

Vastus AI-lt

Promise.all võimaldab käivitada mitu lubadust samaaegselt ja oodata, kuni kõik need lõpetatakse. See võtab vastu lubaduste massiivi ja tagastab uue lubaduse, mis:

  • Lahendatakse edukalt, kui kõik massiivi lubadused lõpetatakse edukalt. Sel juhul on tulemus massiiv väärtustest, mis vastavad igale lubadusele samas järjekorras.
  • Tühistatakse, kui vähemalt üks lubadus tühistatakse, ja tagastab esimese tühistatud lubaduse vea.

Kasutusnäide:

const promise1 = Promise.resolve(1);
const promise2 = Promise.resolve(2);
const promise3 = Promise.resolve(3);

Promise.all([promise1, promise2, promise3])
  .then(results => {
    console.log(results); // [1, 2, 3]
  })
  .catch(error => {
    console.error('Üks lubadustest tühistati:', error);
  });

Seega on Promise.all kasulik mitme asünkroonse operatsiooni samaaegseks täitmiseks ja nende tulemuste töötlemiseks pärast kõigi lõpetamist.