代码之家  ›  专栏  ›  技术社区  ›  R. Karlus

JavaScript clearInterval是异步的吗?

  •  0
  • R. Karlus  · 技术社区  · 7 年前

    我有下面的代码。

    var intervalId;
    
    function myCallback() {
        $.ajax({
            url: "http://bla.html",
            cache: false,
            success: function(data) {
                if (intervalId) {
                    clearInterval(intervalId);
                }
    
                if (data && data.result) {
                    return;
                }
    
                alert(data.result);
            }
            , timout: 2000
        });
    }
    
    function callInterval() {
        intervalId = setInterval(myCallback, 5000);
    }
    
    callInterval();
    

    我的问题是 清除间隔(intervalId) 异步?

    1 回复  |  直到 7 年前
        1
  •  0
  •   quirimmo    7 年前

    关键不在于成为 clearInterval 同步或异步。

    在代码中,第一次启动间隔,然后每秒钟执行一次 myCallback .

    返回响应时清除间隔意味着在执行ajax请求期间,间隔仍然在运行,并将启动新的ajax请求。