Middle+
/* Was wird in der Konsole ausgegeben? */ async function f() { console.log(1); const promise = new Promise((resolve) => { console.log(2); setTimeout(() => { console.log(3); resolve("fertig!"); console.log(4); }); }); console.log(5); const result = await promise; console.log(6); console.log(result); return "Ergebnis"; } f(); console.log(7);
sobes.tech KI
Antwort von AI
Betrachten wir die Ausgabesequenz in der Konsole:
async function f() {
console.log(1); // 1
const promise = new Promise((resolve) => {
console.log(2); // 2
setTimeout(() => {
console.log(3); // 3 (ca. 0 ms)
resolve("fertig!");
console.log(4); // 4
});
});
console.log(5); // 5
const result = await promise; // warten auf die Auflösung des Versprechens
console.log(6); // 6
console.log(result); // "fertig!"
return "Ergebnis";
}
f();
console.log(7); // 7
Erläuterung der Ausgabereihenfolge:
console.log(1);— synchronconsole.log(2);— synchron bei der Erstellung des Versprechensconsole.log(5);— synchron nach der Erstellung des Versprechensconsole.log(7);— synchron nach dem Aufruf vonf()
Dann wird setTimeout (Mikroaufgabe) ausgelöst:
console.log(3);console.log(4);
Nach der Auflösung des Versprechens mit resolve wechselt es in den Zustand fulfilled, und await setzt die Ausführung fort:
console.log(6);console.log(result);— zeigt "fertig!"
Die Gesamtausgabereihenfolge ist:
1
2
5
7
3
4
6
fertig!