biubiubiu...

event loop(事件循环/ 事件轮询)

event loop(事件循环/ 事件轮询)

  • js是单线程运行的,其异步需要基于回调来实现
  • event loop 就是异步回调的实现原理
  • js从前到后,逐行执行;
    • 如果某一行执行报错,则停止下面代码的执行;
    • 先把同步代码执行完,再执行异步
console.log('Hi')
setTimeout(function cb1(){
  console.log('cb1')
},5000)
console.log('Bye')

  • 同步代码一行行执行
  • 遇到异步,先“记录”下,等待时机(定时、网络请求等)
  • 时机到了,就移动到Callback Queue
  • 如Call Stack为空(同步代码执行完了),则Event Loop开始工作
  • 轮询查找 CallBack Queue,如有则移动到CallStack执行
  • 继续轮询查找

posted @ 2021-02-24 23:25  了恩  阅读(95)  评论(0编辑  收藏  举报