set Interval設定停止とサイクル(実用)
1933 ワード
原文の出所:https://blog.csdn.net/qq_33212500/articale/detail/70242646 自動終了タイマ
1、できるだけsetIntervalの中で自分でクリアする(停止する). 2、setIntervalをグローバル変数に付与すれば、他のところでClear Intervalをクリアしても効果が得られない可能性があります.(原因:あそこは掃除したばかりで、こちらはまた新たに賦課されたかもしれません.ひどい経験です.)
2018-10-22上の補足感覚は論理的ではなく、消します.具体的には、JSのset Interval()とclearInterval()の使用と注意事項を参照してください.
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);
他の場所でタイマーを停止するなら、グローバル変数を追加して解決できます. 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をグローバル変数に付与すれば、他のところでClear Intervalをクリアしても効果が得られない可能性があります.(原因:あそこは掃除したばかりで、こちらはまた新たに賦課されたかもしれません.ひどい経験です.)
2018-10-22上の補足感覚は論理的ではなく、消します.具体的には、JSのset Interval()とclearInterval()の使用と注意事項を参照してください.