JS异步宏队列微队列原理详解
网络编程 2021-07-04 14:06www.168986.cn编程入门
这篇文章主要介绍了JS异步宏队列微队列原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
先看一张我绘制的原理图
原理图
setImmediate 也是宏任务,在 Node 环境下,微任务还有 process.nextTick
JS 中用来存储待执行回调函数的队列包含 2 个不同特定的列队
- 宏列队:用来保存待执行的宏任务(回调),比如:定时器回调、DOM 事件回调、ajax 回调微
- 列队:用来保存待执行的微任务(回调),比如:promise的回调、MutationObserver 的回调
JS 执行时会区别这 2 个队列
- JS 引擎首先必须先执行所有的初始化同步任务代码
- 每次准备取出第一个宏任务执行前, 都要将所有的微任务一个一个取出来执行,也就是优先级比宏任务高,且与微任务所处的代码位置无关
狼蚁网站SEO优化这个例子可以看出 Promise 要先于 setTimeout 执行
setTimeout(() => { // 立即放入宏队列 console.log('settimeout callback1()'); }, 0); setTimeout(() => { // 立即放入宏队列 console.log('settimeout callback2()'); }, 0); Promise.resolve(1).then(value => { // 立即放入微队列 console.log('Promise onResolved1()', value); }) Promise.resolve(2).then(value => { // 立即放入微队列 console.log('Promise onResolved2()', value); }) // Promise onResolved1() 1 // Promise onResolved2() 2 // settimeout callback1() // settimeout callback2()
全文完。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:vue实现几秒后跳转新页面代码
下一篇:vue 项目软键盘回车触发搜索事件
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程