事件循环队列简略介绍

1 Js 代码执行机制

  • 所有同步任务都在主线程上的栈中执行。
  • 主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
  • 一旦"栈"中的所有同步任务执行完毕,系统就会读取"任务队列",选择出需要首先执行的任务(由浏览器决定,并不按序)。

2 宏任务与微任务

  1. MacroTask(宏观Task) setTimeout, setInterval, , requestAnimationFrame, I/O
  2. MicroTask(微观任务) process.nextTick, Promise, Object.observe, MutationObserver
  3. 先同步 再取出第一个宏任务执行 所有的相关微任务总会在下一个宏任务之前全部执行完毕 如果遇见 就 先微后宏

3 问题扩展

每办理完一个业务,柜员就会问当前的客户,是否还有其他需要办理的业务。*(检查还有没有微任务需要处理)* 而客户明确告知说没有事情以后,柜员就去查看后边还有没有等着办理业务的人。*(结束本次宏任务、检查还有没有宏任务需要处理)*

如上代码,先微后宏,那就是1342打印结果,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值