vue@2.6.10 src/core/util/next-tick.js
function flushCallbacks () {
pending = false
const copies = callbacks.slice(0)
callbacks.length = 0
for (let i = 0; i < copies.length; i++) {
copies[i]()
}
}
其中
pending = false
为什么要放在for循环之前,如果移到for循环之后会发生什么呢?
如果放在for循环之后,copies中的函数如果有调用nextTick将被存到callbacks 中,但是此时pending为true ,则不会将flushCallbacks放到新一轮的任务中,在此次flushCallbacks完成后的下一次调用nextTick前flushCallbacks将不会被执行