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
显然,我理解错了。谁能向我解释一下这到底是如何运作的?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)