1.事件循环

进程,线程
进程
线程
浏览器进程
网络进程
渲染进程
- -渲染主线程:html,css,js执行
消息队列()->消息循环(事件循环)排队
-
-任务(先进先出)
-
-之前分宏任务和微任务
-
-消息队列有优先级 :按照任务类型分(chrome浏览器中)
-
-微队列 [最高] promise.then方法
-
-交互队列 [高] 点击操作等
-
-延时队列 [中] 延时,循环延时





先进行宏任务(script)内的内容;
再去执行微任务队列{
-
-消息队列有优先级 :按照任务类型分(chrome浏览器中)
-
-微队列 [最高] promise.then方法
-
-交互队列 [高] 点击操作等
-
-延时队列 [中] 延时,循环延时}
然后执行微任务如果有嵌套看先执行宏任务在再按照优先级执行微任务
异步

js是单线程,渲染主线程只有一个,同步可能导致阻塞,
所以采用其他线程去异步处理
- -将事先传递的回调函数包装成任务,加到消息队列末尾,等待调度