zoukankan      html  css  js  c++  java
  • 宏任务和微任务

     1、我们执行 JS 代码的时候就是往执行栈中放入函数,当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行,所以本质上来说 JS 中的异步也还是同步行为。

    2、微任务包括 process.nextTick ,promise.then ,MutationObserver (MutationObserver:原生api中用来监听node节点变化的一个类)。

    3、宏任务包括 script , setTimeout  ,setInterval ,setImmediate(该方法用来把一些需要长时间运行的操作放在一个回调函数里,在浏览器完成后面的其他语句后,就立刻执行这个回调函数) ,I/O ,UI rendering(执行完所有的micro-task任务后,再清空micro-task/宏任务,此时本轮循环结束,开始执行UI render) 。

    4、这里很多人会有个误区,认为微任务快于宏任务,其实是错误的。因为宏任务中包括了 script ,浏览器会先执行一个宏任务,接下来有异步代码的话才会先执行微任务。

  • 相关阅读:
    受脑认知和神经科学启发的人工智能
    1分钟爱上管理学
    刻意练习
    课题设计相关
    销售必备心灵鸡汤(转)
    从优秀到卓越
    小记
    何谓成熟?
    三体运动的程序模拟
    行星运动轨迹的程序实现
  • 原文地址:https://www.cnblogs.com/cnlg123/p/14807867.html
Copyright © 2011-2022 走看看