简单概念搞懂EvenLoop 事件循环

先附上我看的感觉很容易懂的链接:https://www.bilibili.com/video/BV1oV411k7XY

众所周知,JS是单线程的,一次执行一件事情,这就是同步的概念。但是因为现在代码需求量各种升级,各种各种情况,导致同步不够用了,于是引入了异步的概念。
同步任务:按从上往下的顺序进行执行。
异步任务:不进入主线程,但是进入任务线程中。其中又分为宏任务和微任务两种。
宏任务:渲染事件、请求、script、settimeout等
微任务:promise.then、Process.nextTick等。
执行顺序就是 同步任务--->任务线程中的宏任务--->宏任务里面的微任务---->下一个同步的任务--->下一个任务线程的宏任务。

简单截图理解


执行console.log(‘hi’)
执行settimeout(先挂载到主线程)settimeout
执行settimeout(浏览器收到指令并执行启动计时器)
执行settimeout(从主线程去除)

执行主线程中console.log('jsbing')
计时结束后进入任务线程中settimeout方法

任务线程回调回主线程中执行function
执行输出,结束

你可能感兴趣的:(简单概念搞懂EvenLoop 事件循环)