setInterval设置停止和循环 (实用)

您所在的位置:网站首页 js中暂停几秒的方法 setInterval设置停止和循环 (实用)

setInterval设置停止和循环 (实用)

2024-06-28 02:30| 来源: 网络整理| 查看: 265

原文出处:https://blog.csdn.net/qq_33212500/article/details/70242646 

自动结束的计时器 var timesRun = 0; var interval = setInterval(function(){ timesRun += 1; if(timesRun === 60){ clearInterval(interval); } //do whatever here.. }, 2000); var startTime = new Date().getTime(); var interval = setInterval(function(){ if(new Date().getTime() - startTime > 60000){ clearInterval(interval); return; } //do whatever here.. }, 2000); var interval = setInterval(function(){ timesRun += 1; var textNode = $('input[type="radio"][name="radioName'+questionNo+'"]:checked').parent().parent().find('input[type="text"]'); console.log(textNode.val()); if(textNode.val() == '' || textNode.val() == undefined){ //当节点没有值或者还未在页面上生成,则赋值 console.log(textNode.length); textNode.val(inputValue); } else { //已经有值了,则清除停止 clearInterval(interval); } }, 500);

如果要在别的地方停止计时器,可以加一个全局变量(_stopTimer)解决:

private _stopTimer = false; ionViewDidEnter() { if (this._stopTimer) { this.startTimer(); } } ionViewDidLeave() { this._stopTimer = true; } private startTimer(): void { this._stopTimer = false; let myTimer = setInterval(() => { // 停止定时器 if (this._stopTimer == true) { clearInterval(myTimer); return; } // 重复动作。。。 }, 500); }

补充:

     1、尽可能在setInterval中自己清除(停止)。     2、如果将setInterval赋给一个全局变量,在其他地方ClearInterval进行清除有可能达不到效果。(原因:那边刚清除,这边可能又重新赋值了,惨痛的经历!)

2018-10-22 上面的补充感觉不合逻辑,划掉。 具体可参考:JS中setInterval()和clearInterval()的使用以及注意事项  

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3