关于await的执行顺序
来源:8-12 async-await是语法糖,异步的本质还是回调函数

慕桂英7180857
2021-01-27
async function fn() {
return Promise.resolve("fn");
}
async function clg() {
console.log(await fn());// 8
}
async function async1() {
console.log("async1 start");// 4
await async2();
console.log("async1 end");// 7
}
async function async2() {
console.log("async2");// 5
}
console.log("aaaaa");// 1
clg();
console.log("fnn");// 2
console.log("start");// 3
async1();
console.log("end");// 6
为什么输出“fn”比输出“async1 end”还晚呢?
event loop第一个轮询到的不应该是先await的fn()嘛?
写回答
2回答
-
你把 clg 函数的代码拆开,就能看明白了
async function clg() { const res = await fn(); console.log(res); }
我们课程里说过,await 的后面(下一行开始)就相当于异步 callback 中的内容。
所以,它输出会晚。
152021-01-28 -
Legolas_Xero
2021-03-24
await后面的代码相当于异步,这个异步是微任务还是宏任务
00
相似问题