Sobes.tech
Junior — Middle

Promise.all va Promise.any funksiyalari orasidagi farq nima?

sobes.tech AI

AIdan javob

Promise.all qator va'dalar massivini qabul qiladi va yangi va'da qaytaradi:

  • agar massivdagi barchasi muvaffaqiyatli yakunlansa, hal qilinadi va natijalar massivini ayni tartibda qaytaradi;
  • agar kamida bitta va'da rad etilsa, darhol uning xatosi bilan rad etiladi.

Promise.any qator va'dalar massivini qabul qiladi va shunday va'da qaytaradi:

  • birinchisi muvaffaqiyat bilan yakunlanganda, hal qilinadi va uning natijasini qaytaradi;
  • agar barchasi rad etilsa, barcha va'dalarning xatolarini o'z ichiga olgan AggregateError bilan rad etiladi.

Misol:

const p1 = Promise.reject('Xato 1');
const p2 = Promise.resolve('Muvaffaqiyat 2');
const p3 = Promise.resolve('Muvaffaqiyat 3');

Promise.all([p1, p2, p3])
  .then(console.log) // chaqirilmaydi
  .catch(console.error); // 'Xato 1' ni ko'rsatadi

Promise.any([p1, p2, p3])
  .then(console.log) // 'Muvaffaqiyat 2' ni ko'rsatadi
  .catch(console.error);