老师,想问一个事件循环的问题
来源:8-9 说一下React组件渲染和更新的过程
qq_流年_170
2021-04-12
在事件循环中,分为同步任务和异步任务,同步任务属于立即执行任务,所以是先执行同步任务再执行异步任务?这是第一个问题。异步任务又分为宏任务和微任务,微任务的优先级会大于宏任务。那是怎么区分宏任务和微任务的呢?请求和定时器是算宏任务还是微任务
写回答
2回答
-
詹姆士郭德纲
2021-06-14
宏任务(macro-task): 同步 script (整体代码),setTimeout 回调函数, setInterval 回调函数, I/O, UI rendering;
微任务(micro-task): process.nextTick, Promise 回调函数,Object.observe,MutationObserver其执行的顺序是这样的:
1. 首先 JavaScript 引擎会执行一个宏任务,注意这个宏任务一般是指主干代码本身,也就是目前的同步代码
2. 执行过程中如果遇到微任务,就把它添加到微任务任务队列中
3. 宏任务执行完成后,立即执行当前微任务队列中的微任务,直到微任务队列被清空
4. 微任务执行完成后,开始执行下一个宏任务
5. 如此循环往复,直到宏任务和微任务被清空
00 -
双越
2021-04-13
异步的内容比较多,也比较杂。
如果你对异步还有如此的疑问,强烈建议你看看我的《前端基础面试》课程 https://coding.imooc.com/class/400.html 。
里面讲 js 异步讲的非常详细,可以先去看一看课程目录。00
相似问题