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?