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

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

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

相关文章:

  • 2022-12-23
  • 2021-10-01
  • 2021-06-29
  • 2021-10-19
  • 2021-11-10
  • 2022-12-23
  • 2022-12-23
  • 2021-06-04
猜你喜欢
  • 2021-10-31
  • 2021-10-25
  • 2022-01-02
  • 2021-08-31
  • 2021-12-06
  • 2021-04-18
  • 2022-01-31
相关资源
相似解决方案