浏览器中的event loop, 简单了解。
作者:互联网
简单 了解 Event Loop 相关知识,知道 JS 异步运行代码的原理。
Event Loop 执行顺序如下所示:
执行全局Script同步代码,(这属于宏任务)
全局Script代码执行完毕后,调用栈Stack会清空;
执行微任务,如果在执行microtask的过程中,又产生了microtask,加入到队列的末尾,也会在这个周期被调用执行;
microtask queue中的所有任务都执行完,微任务后,如有必要会渲染页面
然后开始下一轮 Event Loop
取出宏队列macrotask queue中任务,放入Stack中执行;
执行完毕后,调用栈Stack为空;
执行所有微任务
......
宏任务包括:
script整体代码
setTimeout
setInterval
setImmediate
I/O
UI rendering
microtask类型包括:
微任务包括:
process.nextTick Promise(这里指浏览器实现的原生promise) MutaionObserver 觉得这个视频也不错: https://www.youtube.com/watch?v=cCOL7MC4Pl0 参考文章: https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop https://github.com/SunShinewyf/issue-blog/issues/34 https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ https://html.spec.whatwg.org/multipage/webappapis.html#event-loops
process.nextTick Promise(这里指浏览器实现的原生promise) MutaionObserver 觉得这个视频也不错: https://www.youtube.com/watch?v=cCOL7MC4Pl0 参考文章: https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop https://github.com/SunShinewyf/issue-blog/issues/34 https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ https://html.spec.whatwg.org/multipage/webappapis.html#event-loops
标签:浏览器,microtask,Event,任务,Loop,https,执行,event,loop 来源: https://www.cnblogs.com/luoxiaoer/p/11751810.html