解析复杂三重嵌套Json、构造类,解决生命周期问题。

遇到一个问题就是资源加载的问题,loader.loadRes()是有延时的,如果是在:
onLoad()
start()
update()
这三个周期里面打印:.levelDataLst[1].chunkDataLst[1].chunkTypes[2]绝对一直报错。

但是在lateUpdate()打印就只报两次错误。。。所以我用了定时器+异常处理。不知道大佬们是怎么做的?求指点。。。

项目下载:TestJson.rar (834.6 KB)

js优势就在于异步,如果用同步思路来写,估计惨了,基本上就2种方式,一种是load之后的回调,所有要做的事情都写到回调里去,
如果想要用同步的方式来写,就自己把loadRes包装成Promise, 然后用await的方式来模拟同步方式,具体的async + await方式,请自行百度.

像配置这种东西,你应该在游戏开始前就加载好,存到内存里,用的时候随便用,现用现加载不太适合配置数据。
而且,你这种处理异步的方式,可以归类到奇葩里面。。。。

嗯嗯嗯,其实这个是我单独抽出来的解析部分的测试Demo。我项目的架构是在GameRoot.ts中初始化资源加载服务,也就是在start()中初始化资源服务。但是或许这样的设计还有些不完善的地方。谢谢了。:slightly_smiling:

嗯嗯呢,这个单独抽出来的测试Demo,对Js/Ts还不是很了解,刚接触没多久,不知道它是异步的。

不是说JS是异步的,而是大多数的业务逻辑都是走回调的,Promise就是一个好东西,而且cocos creator是支持 async+await的,所以处理回调是非常有效的,所以还是思路问题, 业务逻辑还是要在资源加载后去调用,另外看一下组件生命周期事件先后顺序.