Sobes.tech
Middle

// Консольда эмне чыгат? 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

AIден жооп

Консолдо төмөндөгүчү көрүнүштөр көрсөтүлөт:

  1. Promise.all([p1, p2, p3]) чакыруусу каталар менен аяктайт, анткени p2 100 мс ичинде "Error" билдирүүсү менен четке кагылат. Ошондуктан .catch(console.error) блокунда төмөндөгүчү көрсөтүлөт:
Error
  1. Promise.allSettled([p1, p2, p3]) ар дайым ийгиликтүү аяктап, бардык убада натыйжаларын камтыган массивди кайтарат, алардын абалына карабастан. Консолдо төмөндөгүчү объекттер массиви көрсөтүлөт:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Мындайча айтканда, биринчи Promise.all катасы консолго чыгат, андан соң Promise.allSettled натыйжалар массиви көрсөтүлөт.