宏任务和微任务的区别
ES6 规范中,宏任务(macrotask)又称为 task,微任务(microtask)又称为 jobs。
宏任务是由宿主发起的,而微任务是由 JS 本身发起。比如,宏任务有:setTimeOut、setInterval、文件操作等;微任务有:Promise.then、Promise.catch等。
微任务和宏任务的执行顺序:
每一个宏任务执行完之后,都会检查是否存在待执行的微任务
如果有,则执行完所有的微任务之后,再继续执行下一个宏任务
简单举例 :
setTimeOut(function() {console.log(1)
})new Promise(function(resolve, reject) {console.log(2)resolve()
}).then(function() {console.log(3)
})console.log(4)// 结果:2431
分析:
1.先执行所有的同步任务(执行第6行、第12行代码 )
2.再执行微任务(执行第9行代码 )
3.再执行下一个宏任务(执行第2行代码 )
宏任务和微任务的区别相关推荐
- 弄懂 JavaScript 执行机制,宏任务和微任务
本文的目的就是要保证你彻底弄懂javascript的执行机制. 不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出 ...
- 宏任务和微任务的详解
微任务可以在实时性和效率之间做一个有效的权衡. 从目前的情况来看,微任务已经被广泛地应用,基于微任务的技术有 MutationObserver.Promise 以及以 Promise 为基础开发出来的 ...
- javascript事件循环Event Loop,宏任务与微任务
1.javascript的运行机制介绍 javascript是单线程的语言,默认情况下一个时间点只能做一件事情,因此引入异步模型javascript是一门解释性脚本语言,即(边解释边运行) 2.阻塞式 ...
- 异步执行顺序——宏任务与微任务不同环境下的出队规则
导读 javascript是一门单线程语言,一切javascript版的多线程都是用单线程模拟出来的,所以代码执行还是顺序执行的原则,只不过编写的顺序被执行环境重新"编排"了一下而 ...
- 宏事件、微事件、 JavaScript 执行机制
案例预热: setTimeout(function(){console.log('定时器开始啦')});new Promise(function(resolve){console.log('马上执行f ...
- ajax是宏任务还是微任务,宏任务和微任务的一个小事
本文首发于 vivo互联网技术 微信公众号 链接: 作者:Ivan 本文根据 JavaScript 规范入手,阐述了JS执行过程在考虑时效性和效率权衡中的演变,并通过从JS代码运行的基础机制事件队列入 ...
- 易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
博彩众家之长,积微成就突破.为促进我国宏基因组研究领域的学术交流和技术分享,推动微生物组领域的发展,"宏基因组"公众号联合国内外优秀人才组织"易生信-宏基因组 积微学术论 ...
- js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)...
javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...
- js中的事件循环和宏任务和微任务的理解
参考许多大神的文章,写下自己的理解 事件循环: 说到事件循环就得谈到js中同步和异步的执行顺序 1.javascript将任务分为同步任务和异步任务,同步任务放到主线中,异步函数首先进行回调函数注册. ...
最新文章
- mysql运维工资_MySQL运维踩坑
- Java调用PHP,跑PHP代码
- Flume Sinks官网剖析(博主推荐)
- 这个笑脸胡子的表情是什么:“<:] {%>”?
- 记mysqldump导出导入数据库的一个小问题~
- javascript关于检测浏览器和操作系统的问题
- Docker 网络命名空间
- 【springboot】application.yml配置文件中数据库密码password加密后显示
- (转)让我们原谅齐达内吧!(附一张落泪的照片)
- [HTML5]使用Box2dWeb模拟射箭效果并添加能量槽
- HDFS Archival Storage
- 手机计算机隐藏图标,怎么隐藏图标-隐藏小米手机桌面图标文字,只需一小段代码...
- 单网卡、单IP、双网关设置内外网同时访问
- Qt扫盲-QSystemTrayIcon理论总结
- 【历史上的今天】5 月 12 日:第一台可编程机电子计算机诞生;硅谷先驱出生;饭否上线
- YOLOv5 Head解耦
- C#记录程序运行时间记录显示
- 鲜花线上销售管理系统的设计与实现
- PrometheusAlert安装和其基本的使用
- npm 查看指定 package 的依赖关系