关于eventLoop Js事件循环机制的总结探索

首先再搞清js事件循环机制之前我们需要搞懂JS是单线程的运行机制,同步代码会造成阻塞,所以必须引进异步,那么异步和同步代码运行的机制又是怎样的呢?

如图所示,js的所有代码在执行之前,会一行一行的将代码方法代码的执行栈中,如果是同步代码就会直接执行了,然后遇见异步回调则会将异步回调函数代码放入Web那个储存栈中(该存储站只存储宏任务setTimeout setInterval ajax 和  Dom事件),如果是执行代码过程中遇见微任务Promise和async/await则将代码放入微任务存储栈中,宏任务到了特定的时候(如定时和网络请求等完成时)放入回调函数栈中,当同步任务执行完毕后,微任务存储栈中的代码将会依次传入代码执行栈中依次执行,执行栈执行代码的步骤依旧如上所述,然后微任务执行栈中的代码执行完毕后(即微任务执行栈中无代码),开始dom渲染,dom渲染完成后,回调函数栈中的函数将会依次进入代码执行栈,进入后执行代码的逻辑再次重复这个过程,如此循环

相关文章: