前言
为什么会有event loop
因为js是单线程的,如果某段程序需要等待一会再执行,后面的程序都会被阻塞,这样也就带来了一些问题。为了解决这个问题,js出现了同步和异步两种任务,两种任务的差异就在于执行的优先级不同。event loop就是对任务的执行顺序做了详细的规范。
event loop的理解:
一种在编程语言中常用的编程模型,用于处理任务队列中的事件,它可以被用来处理各种任务,包括网络事件,文件的读写,定时器,用户界面事件等。
eventloop工作的原理是,它会按照顺序处理在任务队列中的事件,当它处理完一个事件时候,就会检查队列中的下一个事件,并继续处理,直到队列中的事件全部处理完毕。Eventloop同时会检查任务队列中是否有新的事件,如果有就会把它加入到队列中,然后继续处理。
循环的步骤
1.把同步任务队列 或者 微任务队列 或者 宏任务队列中的任务放入主线程。
2.同步任务 或者 微任务 或者 宏任务在执行完毕后会全部退出主线程。