1. 1、所有任务都在主线程上执行,形成一个执行栈。
    2. 2、主线程发现有异步任务,如果是微任务就把他放到微任务的消息队列里,如果是宏任务就把他放到宏任务的消息队列里。
    3. 3、执行栈所有同步任务执行完毕。
    4. 4、执行微任务队列,之后再执行宏任务队列。
    5. 5、轮询第4步。

    01event-loop.mp401.png
    01event-loop.mp4

    1. <div class="app"></div>
    2. <script>
    3. async function fn1(){
    4. console.log("100");
    5. await fn2();//await 将函数切割,后面的代码变成异步的
    6. console.log("300");
    7. }
    8. async function fn2(){
    9. console.log("fn2");
    10. await 200;
    11. console.log("end");
    12. }
    13. fn1();
    14. console.log("middle");
    15. </script>