Egret社区

[Egret Engine] egret.setTimeout在有些平台下会出错

2019-5-24 10:40
2643
产品 Egret Engine 版本 5.2.19
复现概率 90% 平台 Android 天天模拟器
复现步骤 用我给出的代码在,天天模拟器上很容易出现
问题描述 在执行timeoutUpdate时,清除后面没循环到的key, 就有可能报错
错误代码 private _timeOuts: number[] = [];
private intervalTest(): void {
for (let i = 0; i < 10; i++) {
this._timeOuts.push(egret.setTimeout(this.onTimeOut, this, 1000));
}
}
private onTimeOut(): void {
for(let id of this._timeOuts){
egret.clearTimeout(id);
}
}
BUG截图
egret.setTimeout,在执行timeoutUpdate时,如果某一个clearTimeout中又清除其他timeout, 而且key在当前执行key的后面,就很大可能出现let data = setTimeoutCache[key2];data为空的情况,在天天模拟器下很容易出现,其他个别型号的真机也出现过。
QQ截图20190524102809.png
分享到 :
0 人收藏

3 个回复

倒序浏览
熊猫少女  官方团队 | 2019-5-24 16:16:26
您好,您的问题我们已经收集。
熊猫少女  官方团队 | 2019-5-24 16:51:17
问题已经解决,下个版本会解决,近期会发布新版本,预计下周发布
wxin1986  登堂入室 | 2019-5-24 16:59:38
熊猫少女 发表于 2019-5-24 16:51
问题已经解决,下个版本会解决,近期会发布新版本,预计下周发布

感谢,egret.setInterval应该也有相同的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2019 Comsenz Inc.

返回顶部