重置并重复设置间隔

Reset and repeat setinterval

我有一个 运行 setInterval() 函数。我要

  1. 开始设置间隔
  2. 重置设置间隔
  3. 开始设置间隔

+1,+2,+3订阅后不重置,加后不清除

    if(eventData.type=="subscription"){
    //code to handle subscription events
    console.log(eventData)
    abone_sayisi++

    if (geri_say!=undefined) {//geri_say!="undefined"
        console.log("tanımlanmamış")
        clearInterval(geri_say)
    }

    var a=0
    var geri_say = setInterval(function() {

        if (a==30) {
            abone_sayisi = 0
            $(".tren-sayisi").html(abone_sayisi)
            clearInterval(geri_say)
        }

        console.log(a)
        a++

        console.log("geri_say_temizle")
    },1000)
    }

因为提升 var geri_say 被移动到方法的顶部,每次调用方法时,它都会覆盖变量,因此您无法重置它。所以你的代码对 js 引擎来说是这样的:

function foo() {
  var geri_say;
  if (geri_say) {
    window.clearTimeout(geri_say); 
  }
  geri_say = window.setTimeout(function(){},1000);
} 

所以你可以在外面定义它,这样它就不会每次都被覆盖。

var geri_say;
function foo() {
  if (geri_say) {
    window.clearTimeout(geri_say); 
  }
  geri_say = window.setTimeout(function(){},1000);
}