异步资源加载完的回调有时无法读取this.node

代码如下:

有点时候BgNodeB会为null,这个时候发现this.node也读取不了,报错内容如下
image
错误正确比大概是1:10,而且每回报错的资源都不一定一样,基本随机!
望大佬帮助,谢谢!

Z$1CMEVGA0O8BWQ2CGA99C8
会不会这个node已经失效了呢? NULL并不能完全判断节点是否还在
可以试试node.isValid 和cc.isValid(node);
文档在这
cc · Cocos Creator
Node · Cocos Creator

1赞

谢谢!是我自己的思路的问题,顺着您的思路我成功找到解决了问题。至于this.node,在回调里是根本读取不了的。多谢!!!!!

问题如下:在回调中,我会删掉BG下除了这次用的子节点外所有子节点。但是假如运行速度过快,可能上一次的回调直接删了这次需要用的节点,造成问题。

this.node这个问题 是JS 作用域的特性导致的,你可以用箭头函数当回调,就能解决this
JavaScript 作用域 (w3school.com.cn)
JavaScript 箭头函数 (w3school.com.cn)
javascript中的this作用域详解 - coder_Jenny - 博客园 (cnblogs.com)

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。