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-ի արդյունքների զանգվածը։