【发布时间】:2023-01-12 12:52:52
【问题描述】:
假设我用 500 毫秒、1 秒、1.5 秒调用 3 个间隔。一旦我点击 500ms 按钮,我需要停止其他 2 个间隔运行仅 500ms。就像我点击 1s 然后停止之前的 500ms 间隔。我怎么弄明白。
socket.on("interval-1",(value)=>{
console.log(value);
if(value==1){
var timer1 = setInterval(function(){
let price = Math.floor(Math.random() * 100);
socket.emit("price",price)
},500);
}
else if(value==2){
var timer2 = setInterval(function(){
clearInterval(timer1)
let price = Math.floor(Math.random() * 100);
socket.emit("price",price)
},1000);
}
else if(value==3){
setInterval(function(){
clearInterval(timer1)
clearInterval(timer2)
let price = Math.floor(Math.random() * 100);
socket.emit("price",price)
},1500);
}
})
我试过了,但是一旦我间隔它开始,当我点击运行其他间隔时它就不会停止。
提前致谢!
【问题讨论】:
-
您需要将
timer1和timer2声明为全局变量,这样当value = 3、clearInterval可以访问它们。 -
@Layhout - 好吧,不是作为全局变量,而是在模块的顶层。
scoket.on()之上的范围。
标签: javascript node.js express intervals