上一节通过分析我们知道,当执行flushSchedulerQueue时,会触发watcher的get方法从而调用updateComponent去重新render重新update
那么,flushSchedulerQueue是何时被执行的呢?
![](https://img.haomeiwen.com/i22517122/6340be50d8b4f1ea.png)
当我们调用nextTick时,将flushSchedulerQueue函数作为参数传入,并向callbacks保存了一份;代码向下执行timerFunc方法,该方法定义可能是
![](https://img.haomeiwen.com/i22517122/2b32d6d35d1b118d.png)
也可能是在ie中被支持的
![](https://img.haomeiwen.com/i22517122/8238ae034c9d7f3e.png)
还有可能是
![](https://img.haomeiwen.com/i22517122/31243627589844fc.png)
可以看到,不管是哪一种,都是一次异步任务(js异步),由于我们的update更新数据是在nextTick内的,因此数据的更新是异步的,因此我们能拿到新的值
网友评论