看完一定懂的 Event Loop

lxf2023-05-05 00:58:21

写前感想:在各大网站、博客当中,写Event Loop的文章实在是太多了,但其实只要深入的去理解某一篇,你会发现它也不过如此;也不用看太多,因为大家的理解的水平都大差不差,写的都是那点东西;重要的是,当你真正理解之后,可以对于当中某一些细小的问题,进行深入研究与探讨,这才是你真正的收获。

废话了那么多,我其实想说的是,本文也是一篇关于Event Loop,平平无奇的小文章,但只要你用心去看,会让你看懂是怎么回事;如果面试的话,我也在最后提供了我自己的回答模板;但是如果想要了解很深邃的东西….啊,恕我无能,臣妾还做不到!!!

What is Event Loop?

Event Loop 也就是事件循环,我们先抛开它到底是怎么循环的,来谈谈为什么会有这个东西。

首先,我们知道的是JS是单线程的(至于为什么是单线程的,还不知道人请看注释1;温馨提示:点击右侧目录更方便),那既然只有一个线程来执行事件,就会产生一些问题,就比如一个场景,假如现在小张这边有一些任务,分别是看书、写作业、吃外卖、做广播体操;正常情况下,小张是写完作业之后,点一个外卖,等外卖送过来吃掉,再做广播体操。在这个过程中,小张其实会有一个“干等”的时间