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])გამოძახება დასრულდება შეცდომით, რადგანp2უარყოფილი იქნება 100 მლს შემდეგ შეტყობინებით "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-ის შედეგების მასივი.