我正在尝试使 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')
},
})
})