以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 小测验
50. async await

输出结果是:

4
1
3
6
8
2
7
5

解析:

  1. 首先主线程执行同步代码,输出4;
  2. 执行async1()函数,输出1,然后执行await async2()函数,输出3,因为async2()函数是异步函数,会被放到任务队列中,等待Event Loop来执行;
  3. 输出6,因为Promise是同步代码,不需要等待异步操作;
  4. 输出8;
  5. 当前主线程执行完毕,开始执行异步代码,先执行任务队列中的async2(),输出2;
  6. 接着执行Promise的then方法,输出7;
  7. 最后执行定时器回调函数,输出5。