老师问一下

来源:8-17 解答JS异步的面试题

幻城163630

2020-09-02

老师问一下为什么我在浏览器上面执行的代码,最后面的那两个微任务和你的执行顺序是反的呢?

写回答

2回答

双越

2020-09-02

把代码和你的执行截图贴出来吧。

以及,你用了什么浏览器?

0
1
幻城163630
非常感谢!
2020-09-03
共1条回复

幻城163630

提问者

2020-09-02

async function async1() {

        console.log("async1 start2");//2

        await async2();//await后面的都为回调内容————微任务

        console.log("asnyc1 end7");//7

      }

      async function async2() {

        console.log("async2 3");//3

      }

      console.log("script start 1");//1

      setTimeout(() => {

        console.log("setTimeOut 8");//宏任务  //8

      }, 0);

      async1();

      new Promise(function (reslove) {

        console.log("promise1 4");//4

        reslove();

      }).then(function () {

        console.log("promise2 6");//微任务  6

      });

      console.log("script end 5");//5



Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"

0
4
双越
回复
幻城163630
不同版本浏览器对于微任务的执行顺序不一样。不过像这种模糊不清、各个浏览器不一样的地方。面试的时候按照一个结果答对了就行,面试官不会细究的。
2020-09-03
共4条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程