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 ,浏览器会先执行一个宏任务,接下来有异步代码的话才会先执行微任务。

  • 相关阅读:
    面向 部分
    并发 编程
    数据库 部分
    匿名函数
    Linux 30岁,这些年经历了什么?
    漫谈 HTTP 连接
    华为交换机命令基础入门学习,小白也能看得懂!
    一文讲透APaaS平台是什么
    什么是边缘CDN和虚拟CDN (vCDN)?
    systemd进程管理工具实战教程
  • 原文地址:https://www.cnblogs.com/cnlg123/p/14807867.html
Copyright © 2011-2022 走看看