请教大牛关于promise async await的问题

直接抛问题:
加载资源时,用了async await等待资源加载完成后再执行后面的语句,这几天发现,如果修改系统时间,比如把时间往前调正,然后使用了async await的地方就好像永远挂起了一样,后面的语句不执行了!

引擎用的是2.0.5,语言是typescript,微信小游戏开发,目前测试只会在ios上出现这个问题

,由于初学ts,和cocoscreator,所以不太清楚这块儿到底是语言的问题还是引擎的问题,特发帖请教各位,谢谢!!

需要贴上代码才能看出具体的问题出在哪里

下面是加载资源的代码

//主动加载资源(Asset 资源)
public loadResSync(resPath: string) {
    return new Promise<any>((resolve, reject) => {
        cc.loader.loadRes(resPath, (err, resObj) => {
            if (err != null) {
                console.error(err + " " + resPath);
                return;
            }
            resolve(resObj);
        });
    })
}

然后调用的地方,简单写下

private async loadARolePrefabSync(cfgId: number, career: Career, name: string): Promise<void> {
    let rolePrefab: cc.Prefab = null;
    rolePrefab = await this.loadResSync(`Prefabs/monster/${name}`);
    this.rolePrefabs.Add(cfgId, rolePrefab);
}

通过打印log,发现更改时间后,resolve(resObj)有调用,但是在loadARolePrefabSync函数中,最后一句话没有执行

时间调整为过去的时间会出问题,时间调整为未来的时间没问题

后面用了async await前面就不用写promise了吧,大兄弟,

嗯,是的,前面把loadResSync 改为异步方法确实可以不用写promise,但是现在是往前修改系统时间后,感觉await一直挂着,不继续执行。。。

你的测试角度真的很刁钻啊

玩家搞出来的bug,现在只是封住了,后面要想办法把使用await的地方都去掉

promise有超时机制的,你改时间出现的问题直接忽略了;
改系统时间算是‘作弊’了;

原生平台 不能用async/await ,要怎么办