setTimeout inside loop 运行 代码 1 次然后等待并重复
setTimeout inside loop run code 1 time then wait and repeat
想知道是否有更好的方法来执行此操作或将大小限制为函数的方法
let timerOut = false;
if (!timerOut) {
//do code
timerOut = true;
setTimeout(function () {
timerOut = false;
}, 6000);
}
我需要它所以如果 x 是真的它会做一些事情并等待设定的时间然后如果 x 仍然是真的重复
这在 setInterval
中运行
setInterval(() => {
console.log(x);
tick()
}, 1000);
var x = true;
function tick() {
if (x) {
let timerOut = false;
if (!timerOut) {
x = false
timerOut = true;
setTimeout(function() {
x = true;
timerOut = false;
}, 6000);
}
}
}
x 不会出现在只是让它循环的 setTimeout 中
x 会被其他因素改变
let x = setInterval(() => {
console.log("hi")
clearInterval(x)
}, 3000)
^回答
您可以使用 setInterval
其中 returns 'id' 的区间。
如果您存储了该 ID,则可以随时删除该间隔。
let x = setInterval(()=>{console.log("hi")}, 3000)
clearInterval(x) //deletes that interval
想知道是否有更好的方法来执行此操作或将大小限制为函数的方法
let timerOut = false;
if (!timerOut) {
//do code
timerOut = true;
setTimeout(function () {
timerOut = false;
}, 6000);
}
我需要它所以如果 x 是真的它会做一些事情并等待设定的时间然后如果 x 仍然是真的重复
这在 setInterval
中运行setInterval(() => {
console.log(x);
tick()
}, 1000);
var x = true;
function tick() {
if (x) {
let timerOut = false;
if (!timerOut) {
x = false
timerOut = true;
setTimeout(function() {
x = true;
timerOut = false;
}, 6000);
}
}
}
x 不会出现在只是让它循环的 setTimeout 中 x 会被其他因素改变
let x = setInterval(() => {
console.log("hi")
clearInterval(x)
}, 3000)
^回答
您可以使用 setInterval
其中 returns 'id' 的区间。
如果您存储了该 ID,则可以随时删除该间隔。
let x = setInterval(()=>{console.log("hi")}, 3000)
clearInterval(x) //deletes that interval