async function check() {
await Promise.resolve(console.log(1));
console.log(2);
}
console.log(3);
check();
console.log(4);
答案是3,1,4,2
据我所知,异步函数将转到 Web API 进行解析,主程序将首先执行,所以我想 输出将为 3, 4 , 1 , 2 但这是错误的。
任何人都可以从事件循环和微任务队列方面解释一下正确答案是如何执行的。
事件循环首先运行同步代码,然后运行异步代码。因此,如果您将函数更改为
await Promise.resolve().then(() => console.log(1))
那么输出将为 3,4,1,2