求助,同时发送两个消息有一个被吞了咋办啊

就是将图一变成图二的时候,同时少了两个轮胎,然后这两个轮胎都发送了一个消息,我的代码在这个时候就出现bug了,他只处理了一个事件,还有一个事件好像被吞掉了。求助
image
image
image

事件监听和发送的类


蹲一个答案。

建议自己调试多攒攒经验,看了下代码明显有漏洞

比如01234共5个index元素
index 3和4事件同时处理,3先处理,maxnum变为4
再处理index 4的时候 index < this.maxnum 判定失败不执行

1赞

加个id什么麻烦都没了

处理不了派发消息的同时注册和注销同一事件的话,你还是用乖乖用 Cocos 自带的 cc.EventTarget,不香吗?

事件监听可能也存在问题。

试试判断当前事件是否有在执行emit,有的话先标记该回调不可用,被标记的回调在emit中需要跳过,在emit的代码最后处理删除操作(如果有),如果没有在执行emit,那你就直接做删除操作。

1赞

是不是做的外包项目,小菜鸡

我一直想着会不会是消息同时触发处理不过来的问题,都没注意这个地方。谢谢大佬解惑

谢谢大佬,我好像懂了问题在哪了