代码之家  ›  专栏  ›  技术社区  ›  Orhan Gazi

重置并重复设置间隔

  •  0
  • Orhan Gazi  · 技术社区  · 7 年前

    我有一个运行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)
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   epascarello    7 年前

    由于吊装 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);
    }