nextTick 中遍历 callbacks 问题

来源:11-2 路由注册

前端_未入门

2019-10-13

老师您好,请问 nextTick 去执行 flushCallbacks 的时候,为什么 const copies = callbacks.slice(0) 要定义一个 callbacks 的副本呢,直接遍历 callbacks 不行吗,这里是有什么特殊逻辑吗图片描述

写回答

1回答

ustbhuangyi

2019-10-13

因为 callbacks 的执行过程中,如果某个 callback 移除了另一个 callback,那么在遍历的过程中可能会出错,但是 slice 之后,返回的是副本,这种情况下移除的也是原始的 callback,在执行过程不会出错

0
3
前端_未入门
非常感谢老师,辛苦了
2019-10-14
共3条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4986 学习 · 1038 问题

查看课程