为什么浏览器可以执行异步任务。
浏览器是多线程的。
浏览器给js引擎线程准备的线程为主线程,还有http请求线程==
浏览器有多个进程
* 浏览器进程
* 渲染进程
* GPU进程
* 网络进程
* ...
每一个tab标签页都是一个渲染进程。
执行栈 与 任务队列每一次循环称之为tick
熟悉事件循环 + 了解浏览器运行机制 —> js的执行过程
微任务只有一个队列
宏任务有多个队列
Promise.then 回调存在V8的一个队列中 没有多线程参与 严格意义上说promise.then不能完全算是异步任务
主线程代码执行效率的提高
事件循环是由宿主来实现的。