function first() {
return new Promise(resolve => {
console.log(2);
resolve(3);
console.log(4);
});
}
async function f() {
console.log(1);
let r = await first();
console.log(r);
console.log(99);
}
console.log('a');
f();
console.log('b');
In the above code shows the following result:
a
1
2
4
b
3
99
In my understanding, when the compiler hits the await first() function, it pushes the first() function execution to the event queue and pause the execution of f(), continue execution everything after f().So the execution order should be:
a
1
b
2
4
3
99
Apparently, I get it wrong. Can anyone explain to me how this is really working?

