你在 ScriptEngine::cleanup 里面,清空一下 _promiseArray,应该就可以修复。这个应该是之前处理这块逻辑,没有考虑到这种极端条件(即,在 restart 前刚好有 pushPromiseExeception 一次)
3.8.4 修复此问题:
都已经在重启(game.restart) 了,那么缓存住的 promise 异常没有必要处理了。
如果你确定还要处理,可以在这里直接调用 handlePromiseException 强行处理一下。如果是 cpp 层监听回调,那么会走cpp回调;如果是 js 层通过 jsb.onError 监听错误,那么调用 js 后如果有异步逻辑的话,由于 虚拟机即将重启,一些异步逻辑也不会执行了。
嗯 验证ok的
