Middle+
/* Консольдо эмне чыгат */ async function f() { console.log(1); const promise = new Promise((resolve) => { console.log(2); setTimeout(() => { console.log(3); resolve("дайын!"); console.log(4); }); }); console.log(5); const result = await promise; console.log(6); console.log(result); return "Жыйынтык"; } f(); console.log(7);
sobes.tech AI
AIден жооп
Консольдогу чыгыштын тартибин карайлы:
async function f() {
console.log(1); // 1
const promise = new Promise((resolve) => {
console.log(2); // 2
setTimeout(() => {
console.log(3); // 3 (так около 0 мс)
resolve("дайын!");
console.log(4); // 4
});
});
console.log(5); // 5
const result = await promise; // убада чечилгени күтүп жатабыз
console.log(6); // 6
console.log(result); // "дайын!"
return "Жыйынтык";
}
f();
console.log(7); // 7
Чыгуу тартибин түшүндүрүү:
console.log(1);— синхрондууconsole.log(2);— убада түзүлүп жатканда синхрондууconsole.log(5);— убада түзүлгөндөн кийин синхрондууconsole.log(7);—f()чакырылган соң синхрондуу
Андан кийин setTimeout (микротаск) ишке кирет:
console.log(3);console.log(4);
Убада resolve менен чечилгени менен, ал fulfilled абалга өтөт, жана await ишти улантат:
console.log(6);console.log(result);— "дайын!" деп чыгат
Жалпы чыгуу тартиби:
1
2
5
7
3
4
6
дайын!