-
Creator 版本: 2.4.6
-
目标平台: ME浏览器
-
重现方式:
test() {console.warn("呵呵");}
start() {
this.node.once("ABC", this.test, this) this.node.targetOff(this); this.node.once("ABC", this.test, this) this.node.emit("ABC");}
-
重现概率: 100%
就上面这段代码,运行的时候是不会打印出来的,我不知道这算不算BUG,但我知道这个算一个坑,实际项目中排查了很久才定位到这个问题,看源码是因为上一条once添加的一个off回调,在targetOff里面没有被去掉导致下一次Emit的时候首先调用了上一个once遗留的off回调,导致当前emit真正需要调用的方法被Off掉了
复制你的试了一下没问题 我是2.3.x的 可能2.4.x以上才有问题