博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Event loop笔记
阅读量:6847 次
发布时间:2019-06-26

本文共 424 字,大约阅读时间需要 1 分钟。

执行栈

数据结构, js运行时会将运行函数入栈, 遵循先进后出的原则

浏览器中的事件循环

js运行时会在执行栈中放入函数, 如果碰到异步代码则会被挂起, 放入到task队列.

如果执行栈执行完了, 就会去队列中拿出需要要执行的代码放入执行栈.

不同的任务源会被分为宏任务或者微任务

  • 首先执行同步代码,这属于宏任务
  • 当执行完所有同步代码后,执行栈为空,查询是否有异步代码需要执行
  • 执行所有微任务
  • 当执行完所有微任务后,如有必要会渲染页面
  • 然后开始下一轮 Event Loop,执行宏任务中的异步代码,也就是 setTimeout 中的回调函数

微任务包括 process.nextTickpromiseMutationObserver,其中 process.nextTick 为 Node 独有。

宏任务包括 scriptsetTimeoutsetIntervalsetImmediateI/OUI rendering

转载地址:http://mfmul.baihongyu.com/

你可能感兴趣的文章
简单演示django使用二
查看>>
墨菲定律(侥幸定律)
查看>>
DNS之智能DNS二(Windows)
查看>>
批量修改文件后缀名的方法(当前目录及子目录)
查看>>
Linux Shell脚本攻略
查看>>
[信息图]手机进化史
查看>>
我的友情链接
查看>>
“我来管管看”系列:采购误差缘何而来?
查看>>
关于iSCSI的一些介绍
查看>>
iptables 学习笔记
查看>>
MongoDB与内存
查看>>
tcpdump抓取mysql报文
查看>>
ubuntu下的中文搜索sphinx的安装配置
查看>>
三.Object-C 方法,封装 (下)
查看>>
2003年9月全国计算机等级考试二级C语言笔试试题及答案
查看>>
重复制造轮子之——字节数组写入文件
查看>>
IMP 导入表结构到指定用户
查看>>
windows下FTP连接linux简单演示-dos操作
查看>>
redhat6启动U盘安装
查看>>
H3C 交换机 和windows NPS结合实现内网802.1X认证
查看>>