event loop ,宏任务,微任务之我见

Posted 前端从入门到SP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了event loop ,宏任务,微任务之我见相关的知识,希望对你有一定的参考价值。

众所周知,javaScript是单线程的语言,Event Loop是javascript的执行机制


同步,异步


对于以上我的理解是:javascript是单线程的语言,可是在当存在大型图片加载,文件请求,定时器操作等情况下,可能会堵塞代码的运行,于是出现同步,异步的情况出现,在代码中,代码运行过程中,同步代码会放在执行栈中,当遇到异步的代码时,会将任务保存在一个队列中,当执行栈中空了之后,队列弹出一个任务到执行栈中运行,直到所有任务运行完毕。而异步任务存在微任务和宏任务,

微宏任务有那些?

 宿主环境提供的方法是宏任务,例如setTimeout, setInterval。这些都是浏览器或者Node环境实现的。js引擎自身提供的是微任务,例如Promise。基本上平时接触到的除了Promise都是宏任务。

 eventloop

eventloop也就是任务的执行方式。

执行方式是每次执行完宏任务 都去反复查看是否有微任务,如果没有微任务,便执行下一个宏任务,验证

比如

           

执行方式是每次执行完宏任务 都去反复查看是否有微任务,如果没有微任务,便执行下一个宏任务,这个下面的没有微任务,只有宏任务所以就执行了,下面的这个就不同了,下面依然是微任务所以就一直执行完微任务再执行宏任务


           

每日一推前端知识点,我们一块进步

更多精彩文章











以上是关于event loop ,宏任务,微任务之我见的主要内容,如果未能解决你的问题,请参考以下文章

如何学好算法和数据结构之我见——51CTO名家访谈实录

快应用之我见

架构设计原则之我见2

架构设计原则之我见1

架构师之我见

架构设计之贫血模式与充血模式之我见