宏任务和微任务我一直以为只存在于面试题中,今天终于让我逮到一个,且看~
APICloud AVM 3.0有个picker的组件,就是滑动选择时间的,这样的
里边有个参数,叫默认选中这列的第几个(比如默认选中今天) 可看这个
它会在父页面加载一开始,就设置选中,比父级周期函数最早的还早。
这就导致--我通过周期函数动态改变默认选中值数据的时候,不行
解决方法是,让该picker组件渲染两次
第一次该失败失败,但是在失败的最后我们通过周期函数把数据添加进去了
第二次,通过setTimeout和v-if,重新执行页面的那一块,由于经过第一次,数据已经添加进去,现在picker里的默认数据就是我刚添加进去的那个
分析:
微任务:picker里边原生的设置默认数据应该是微任务
宏任务:通过setTimeout和v-if执行的是宏任务
微任务执行完执行宏任务~下边是画的流程图