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);