函数外为什么停不了?clearInterval

cs113dn 2021-03-31 07:52:51
private countDownTimer = 0;
private timeControl(second) {
if (second > 0) {
this.countDownTimer = egret.setTimeout(()=>{

}, this, 1000);

this.countDownTimer = egret.setInterval(function () {
if (second > 0 && this.bCanSelectFreeGame) {
second--;
// console.log('secound:', second);
let str: string = Utils.replaceString(Config.language['freeGameCountDown_' + Config.lang], [second]);
MainGameView.instance.changeGameTip(str);

if (second <= 0) {
// console.log("停止计时");
clearInterval(this.countDownTimer);//倒计时结束停止有效

let str: string = Utils.replaceString(Config.language['mainGame016_' + Config.lang]);
MainGameView.instance.changeGameTip(str);
}
}
}, this, 1000);
}
}



private onOpenButton(evt: egret.Event) {
let self = this;

clearInterval(this.countDownTimer);//倒计时还未结束时点击按钮停止无效?
}
...全文
225 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs113dn 2021-04-01
  • 打赏
  • 举报
回复
countDownTimer是类中的全局变量
Hello World, 2021-04-01
  • 打赏
  • 举报
回复
clearInterval(this.countDownTimer);//倒计时还未结束时点击按钮停止无效? 当执行这句时你预期的this是什么? 它有countDownTimer属性吗? 弄清楚作用域就明白了
cs113dn 2021-03-31
  • 打赏
  • 举报
回复
this.countDownTimer = egret.setTimeout(()=>{ }, this, 1000); 这句话不要,原打算换个写法

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧