Sobes.tech
Junior — Middle

Promise.all və Promise.any funksiyaları arasında fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Promise.all bir sıra vədə alır və yeni vədə qaytarır:

  • bütün vədlər uğurla tamamlandıqda, eyni sırayla nəticələrin massivini qaytarır;
  • ən azı bir vəd rədd edildikdə, dərhal həmin vədin xətası ilə rədd edilir.

Promise.any bir sıra vəd alır və aşağıdakı kimi vəd qaytarır:

  • hər hansı bir vəd uğurla tamamlandıqda, dərhal onun nəticəsini qaytarır;
  • bütün vədlər rədd edildikdə, bütün vədlərin xətalarını ehtiva edən bir AggregateError ilə rədd edilir.

Nümunə:

const p1 = Promise.reject('Xəta 1');
const p2 = Promise.resolve('Uğur 2');
const p3 = Promise.resolve('Uğur 3');

Promise.all([p1, p2, p3])
  .then(console.log) // çağrılmayacaq
  .catch(console.error); // 'Xəta 1' göstərir

Promise.any([p1, p2, p3])
  .then(console.log) // 'Uğur 2' göstərir
  .catch(console.error);