zoukankan      html  css  js  c++  java
  • 2--面试总结-深入理解js线程进阶-宏任务微任务

        • 前言:
          Event Loop即时间循环,是指浏览器或Node的一种解决javascript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理
        • Js运行机制
               1、不同运行环境,js运行效果不一致
               2、nodeJs基于libuv实现,参考http://docs.libuv.org/en/v1.x/design.html
               3、chorme基于
        • 宏任务微任务
              
          • 宏任务,macrotask也叫tasks。一些异步任务的回调会一次进入macro task queue,等待后续被继续调用,这些异步任务包括:
            • setTimeout
            • setInterval
            • setImmwsiate(Node独有)
            • I/O
            • UI rendering(浏览器独有)
          • 微任务,microtask,也叫jobs。另一些异步任务的回调会一次进入micro task queue,等待后续被调用,这些异步任务包括
            • process.NextTick(Node独有)
            • Promise.then()
            • Object.observe
            • MutationObserver
            • (注:这里只针对浏览器和NodeJs)
          • -----注意:new Promise()构造函数里面属于同步代码,而非微任务
          • 浏览器端所有的宏任务都在一个事件队列里执行
            ,每次事件队列取出一个事件之时有微任务就把微任务执行完,然后才开始执行事件
            • 宏任务每次只取一个
            • 微任务执行多个
            • 微任务会放在当前时间循环的末尾
  • 相关阅读:
    Springboot + Mybatis 多数据源配置
    构建微服务:Spring boot 入门篇
    IDEA SpringBoot代码修改热部署/加载
    vue-cli知识点
    vuex知识点
    正则基本知识
    多行SQL语句拼成一条数据
    软件的版本控制
    ASP.NET 表单验证实现浅析
    建造者模式
  • 原文地址:https://www.cnblogs.com/janice-jia/p/11789735.html
Copyright © 2011-2022 走看看