Skip to content

【Promise第30题】下面代码的输出是什么?

Posted on:2022年1月9日 at 23:15
async function async1() {
  console.log("async1 start");
  await async2();
  console.log("async1 end");
  setTimeout(() => {
    console.log("timer1");
  }, 0);
}
async function async2() {
  setTimeout(() => {
    console.log("timer2");
  }, 0);
  console.log("async2");
}
async1();
setTimeout(() => {
  console.log("timer3");
}, 0);
console.log("start");

解析

定时器谁先执行,你只需要关注谁先被调用的以及延迟时间是多少,这道题中延迟时间都是0,所以只要关注谁先被调用的。

结果

'async1 start'
'async2'
'start'
'async1 end'
'timer2'
'timer3'
'timer1'
原文转自:https://fe.ecool.fun/topic/2c14e603-0e2b-4a05-89b7-d5c45804527a