Sobes.tech
Middle

// Konsolda nima nima chiqariladi? const p1 = Promise.resolve(1); const p2 = new Promise((_, reject) => setTimeout(() => reject("Error"), 100)); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]) .then(console.log) .catch(console.error); Promise.allSettled([p1, p2, p3]).then(console.log);

sobes.tech AI

AIdan javob

Konsolda quyidagi ko'rinishda bo'ladi:

  1. Promise.all([p1, p2, p3]) chaqiruvi xato bilan tugaydi, chunki p2 100 ms ichida "Error" xabari bilan rad etiladi. Shuning uchun .catch(console.error) blokida quyidagicha ko'rsatiladi:
Error
  1. Promise.allSettled([p1, p2, p3]) chaqiruvi har doim muvaffaqiyatli tugaydi va barcha va'dalarning natijalarini o'z ichiga olgan massivni qaytaradi, ularning holatidan qat'i nazar. Konsolda quyidagi obyektlar massiv ko'rinishida chiqadi:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Shunday qilib, avvalo Promise.all xatosi konsolga chiqadi, keyin esa Promise.allSettled natijalari ro'yxati ko'rsatiladi.