JS宏任务,微任务

宏任务微任务?

首先我们要知道JS的这几点

      JS  的执行机制: 

                事件循环机制

       据我所知,JS只能在两种环境运行 :

                1.node.js
                2.浏览器

     JS执行顺序

                1.从上到下一步一步,一次只做一件事(像极了我家楼下的面馆接客)

                2.如果一行报错,则停止执行下面的代码

                3.先执行同步代码,再执行异步代码

   js任务分为同步任务和异步任务

           同步么,就是一条主线走完
           异步就是一个任务一次做不完 ,先执行一段,等会执行完其他任务,做好了准备再来执行第二段,第二段也被称之为回调,如果没有特殊处理,JS引擎在执行异步任务时,应该是存在等待的,不去做任何其他事情.

           我们的宏任务和微任务都属于异步任务---->

    事件循环 由宏任务和执行宏任务时产生的微任务组成

                事件循环机制,其实就是宏任务>微任务>宏任务,整个script就是一个大的宏任务

                一道题全解

<script>
        console.log(1)
        async function fnOne() {
          console.log(2);
          await fnTwo();// 右结合先执行右侧的代码, 然后等待
          console.log(3); 
          /*
            await 函数()  ==>  new Promise(() =>
                                函数()
            其他代码           }).then(() =>{其他代码})
            ----------------------------------------------
            执行完await后面的函数,就跳出这个async  加到微任务
          */
        }
        async function fnTwo() {
          console.log(4);
        }
        fnOne();

        setTimeout(() => {
          console.log(5);
        }, 2000);
        let p = new Promise((resolve, reject) => { // new Promise()里的函数体会马上执行所有代码
          console.log(6);
          resolve();
          console.log(7);
        })
        setTimeout(() => {
          console.log(8)
        }, 0)
        p.then(() => {
          console.log(9);
        })
        console.log(10);
    </script>

结果是:1 2 4 6 7 10 3 9 11 14 8 12 13 5(2s)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值