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');
上面的代码显示了以下结果:
a
1
2
4
b
3
99
根据我的理解,当编译器命中await first()
时函数,它会插入 first()
函数执行到事件队列并暂停 f()
的执行,继续执行f()
之后的所有内容。所以执行顺序应该是:
a
1
b
2
4
3
99
看来我理解错了。谁能向我解释一下这到底是如何运作的?
最佳答案
关于javascript - 为什么 2 和 4 在 b 之前打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139161/