clearInterval 似乎不起作用,setIntervals 堆叠 [关闭]

问题描述 投票:0回答:0

我正在尝试使 clearInterval 起作用,但我不确定为什么它不起作用。

它成功地在 response['live'] true 和 false 之间跳动,但是当函数被调用时,它会创建另一个 streamOrderUpdates 并以两倍的速度调用它并不断添加更多的 streamOrderUpdates 实例。

除 clearInterval 部分外,一切正常,不确定我做错了什么。 请发送帮助。

let streamUpdateId;

function streamOrderUpdates(){
    if (!streamUpdateId) {
    const streamUpdateId = setInterval(getOrdersUpdates, 1000);
    }
  }
 
function stopOrderUpdates(){
    clearInterval(streamUpdateId);
  }


$(document).on("click", '.openclosed', function(){
    const restaurant = $(this).attr("id")
    const url = `/openclosed/${restaurant}/`
    $.ajax({
      type:'POST',
      url: url,
      data : {
        'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val(),
      },
      success:function(response){
        console.log('success', response)
        if (`${response['live']}` == 'false'){
          stopOrderUpdates();
        }
        else {
          streamOrderUpdates();
        }
      },
      error:function(response){
        console.log('error')
      },
    })
  })
javascript jquery clearinterval
© www.soinside.com 2019 - 2024. All rights reserved.