JS的一道宏任务微任务题目

2023-12-13 07:14:25

题目

左边和右边的代码,分别重新渲染了几次 rCount (忽略页面第一次初始化渲染)
在这里插入图片描述

左边

for 循环中 5 次赋给 rCount 值,都是同步代码
每次触发了数据劫持的 setter ,最终会执行 vue 的 nexttick,而 nexttick 的大部分情况是执行一个微任务(Promise)
所以只重新渲染了 1 次

右边

for 循环中产生了 5 个宏任务

宏任务微任务
宏任务1 宏任务2 宏任务3 宏任务4 宏任务5

执行第一个宏任务,给变量赋值,最终会执行 vue 的 nexttick,即产生一个微任务1

宏任务微任务
宏任务2 宏任务3 宏任务4 宏任务5微任务1

微任务优先级高,所以先执行微任务,进行一次渲染
然后再执行宏任务2,产生一个微任务2,再执行微任务,进行一次渲染
依次类推…
一共重新渲染了 5 次

文章来源:https://blog.csdn.net/weixin_52268321/article/details/134941873
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。