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
Конисолда қуйидагича кўрсатилади:
Promise.all([p1, p2, p3])чақириши хато билан тугаши мумкин, чункиp2100 мсдан кейин "Error" хабар билан рад этилади. Шунинг учун.catch(console.error)блокида қуйидагича кўрсатилади:
Error
Promise.allSettled([p1, p2, p3])ҳар доим муваффақиятли тугаши ва барча ваъдаларнинг натижаларини ўз ичига олган массивни қайтариши мумкин, уларнинг ҳолатидан қатъий назар. Консолда қуйидаги объектлар массиви кўрсатилади:
[
{ status: "fulfilled", value: 1 },
{ status: "rejected", reason: "Error" },
{ status: "fulfilled", value: 3 }
]
Шу тариқа, аввал Promise.all хато консолга чиқади, кейин эса Promise.allSettled натижалар массиви кўрсатилади.