一、什么是宏观任务和微观任务

任务可以分为同步任务和异步任务;异步任务又可以分为宏观任务和微观任务,自从es6后,js引擎也可以发布异步任务。

宏观任务:通过浏览器、node。js等宿主环境来请求

微观任务:是js引擎发起的任务

二、执行流程

首先执行的是同步代码

其次是微观任务代码

最后是宏观任务

三、代码

1.同步代码 (js 执行栈/回调栈)

2.微任务的异步代码(is引擎)

process.nextTick (node)

Promise.then() catch(),Promise本身为同步,them/catch的回调是异步

se.then() catch()

Async/Await

Object.observe 等等

3.宏任务的异步代码(宿主环境)

script (代码块)

setTimeout / setlnterval 定时器

setlmmediate 定时器宏任务了

四、应用

1、从上到下,把所有的同步任务、异步任务中的宏观任务和微观任务找出来。

2、然后根据执行循序,先进先出,所以输出结果是1,2,6,4,3,5

注:值得注意的是,在await之后都是微观任务,所以将console.log(3)放到微观任务中

是不是轻轻松松搞定宏观任务和微观任务的啦!

js---宏观任务和微观任务相关推荐

  1. 浅谈js宏观任务、微观任务

    js运行机制分为同步异步,异步又分为宏观事件和微观事件: 同步异步: js是一门单线程语言,因此js在同一个时间里只能做一件事,单线程意味着,如果在同个时间有多个任务的话,这些任务就需要排队,前一个执 ...

  2. js 宏观任务和微观任务 promise的代码为什么比setTimeout先执行

    这篇文章是通过学习极客时间winter大大的<重学前端>中16| promise里的代码为什么比setTimeout先执行总结而来 宏观任务[MacroTask] 和 微观任务[Micro ...

  3. js宏观任务和微观任务

    先来看这样一道面试题: async function async1() {console.log('async1 start')await async2()console.log('async1 en ...

  4. 浅谈 js运行机制 、宏观任务、微观任务

    **今天我们谈一下我对js 运行机制 和宏观任务.微观任务的理解** js运行机制有同步运行和异步运行 js是单线程运行模式在进入任务当中如果是同步任务 那么就直接被主线程运行 如果是异步任务 那么就 ...

  5. JS执行机制、同步和异步、宏观任务和微观任务

    1. JS 是单线程 JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事. 这是因为 Javascript 这门脚本语言诞生的使命所致--JavaScript 是为处理页 ...

  6. js的循环机制、宏观任务与微观任务

    javascript是单线程语言,EventLoop事件循环. 一.同步和异步: 所有的线程,都是有同步队列,和异步队列,立即执行的任务队列,这些都是属于同步任务,比如一个简单的函数:请求接口发送aj ...

  7. 量化因果涌现表明:宏观可以战胜微观

    来源:集智俱乐部 作者:Erik P. Hoel, Larissa Albantakis, Giulio Tononi  译者:赵婷婷  审校:梁金  编辑:邓一雪  导语 复杂系统内的因果关系可以从 ...

  8. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解

    静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...

  9. 微积分小课堂:微分(从宏观变化了解微观趋势)

    文章目录 引言 I 预报知识 1.1 微积分的发明 1.2 导数 II 微分 2.1 圆柱体积的变化趋势 2.2 梯度 引言 线性代数有很强的实用价值 微积分能提高思维水平,在任何时刻算出梯度,然后沿 ...

  10. 对极限定义的理解_宏观区间和微观区间_20160326

    对极限定义的理解_宏观区间和微观区间

最新文章

  1. Android Handler sendEmptyMessageDelayed 和 sendEmptyMessage 的使用
  2. JDBC操作MySQL Lob字段记实
  3. django3.2.8配置使用mysql
  4. 用WPF做了几个小游戏
  5. efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...
  6. zabbix (二)安装
  7. Visual Studio Team Architect团队的敏捷开发 (第三部分)
  8. php_l3arning_notes_2
  9. 锐捷长ping_锐捷网络 RG-NBR3000(带机量1000台)
  10. Quartz数据库存储
  11. C语言-C语言程序的结构
  12. CF868F 分治优化dp
  13. view基础知识介绍(一)
  14. UART(一)裸机编程
  15. 决策树(三)--完整总结(ID3,C4.5,CART,剪枝,替代)
  16. 书籍推荐——Python绝技:运用Python成为顶级黑客
  17. 代码随想录Day48|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
  18. 内置函数sum与sum(list,[])
  19. 关于VUE中对object.object和object[object]的认识
  20. 慧安股份加入飞桨技术伙伴计划,共同打造智慧物联网产品和行业应用解决方案...

热门文章

  1. 基于VMware_vSphere的银行虚拟化平台设计 ——网络存储课程设计
  2. Next.js读取本地文件
  3. Python基础知识及概念
  4. 千万不要去外国当程序员
  5. erlang 变量存储在哪里_Erlang(3):数据类型与变量
  6. 邮件中写html代码规范,EDM电子邮件CSS和HTML编码规范
  7. 超形象的解释“腰间盘为什么会突出”
  8. Tomcat面试题笔记
  9. mysql商品查询_mysql的查询、子查询及连接查询(商城查询常用)
  10. 初三同学的选择——上职高是否可行?