set Interval設定停止とサイクル(実用)


原文の出所:https://blog.csdn.net/qq_33212500/articale/detail/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);
    
    
    他の場所でタイマーを停止するなら、グローバル変数を追加して解決できます.
        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()の使用と注意事項を参照してください.