回调函数与状态清理

来源:互联网 发布:知乎 核安全所 编辑:程序博客网 时间:2024/06/11 12:36

最近公司有个同事在做模型移动时发现了一个奇怪的bug,就是移动完成之后再移动带下一个点不会生效,而且这个bug可以稳定重现。但是他搞了两天都没找到原因,我便抽了个时间帮他看了看。

最后发现是回调函数和状态清理没有处理好,moveover函数里面是先调用回调函数再将isActiving置为false。在回调函数里调用移动到下一个点时,isActiving还没有被置为false导致没有生效。再拓展一下,回调函数中可能会开始新的移动,如果先回调再清理原先的状态可能会错误的清理掉新的状态。这是需要注意的。