如何调用保存在变量中的 setInterval 函数
How to call a setInterval function saved in a variable
我有一个 setInterval()
函数保存到一个变量,以便能够在使用 clearInterval()
后清除它。
walkRight = setInterval(moveSnakeRight,1000)
walkLeft = setInterval(moveSnakeLeft, 1000)
walkUp = setInterval(moveSnakeUp, 1000)
walkDown = setInterval(moveSnakeDown, 1000)
//and
clearInterval(walkLeft)
clearInterval(walkRight)
clearInterval(walkUp)
我的问题是是否有任何方法可以再次调用相同的 SetInterval,在本例中为 walkRight 或 walkLeft 或 walkUp。他们中的任何一个..
如果我尝试 walkRight() 它不会工作,因为它不是一个函数,如果我尝试 window.walkRight 也不会工作。
setInterval
的 return 值是一个 数字 ,它标识间隔 仅 用于清除它。
无法使用该数字获取有关间隔的任何其他信息。您不能使用它来确定哪个函数用于 运行 间隔。您不能使用它再次调用该函数。
如果您需要该信息,则必须单独存储。
例如:
const moveSnakeRight = () => {
console.log('moving right');
};
class IntervalController {
constructor(func) {
this.func = func;
this.start();
}
start() {
if (typeof this.interval === "undefined") {
this.interval = setInterval(this.func, 1000);
}
}
stop() {
clearInterval(this.interval);
this.interval = undefined;
}
}
const moveRightController = new IntervalController(moveSnakeRight);
document.querySelector('#start').addEventListener('click', () => moveRightController.start());
document.querySelector('#stop').addEventListener('click', () => moveRightController.stop());
<button id=start>Start</button>
<button id=stop>Stop</button>
我有一个 setInterval()
函数保存到一个变量,以便能够在使用 clearInterval()
后清除它。
walkRight = setInterval(moveSnakeRight,1000)
walkLeft = setInterval(moveSnakeLeft, 1000)
walkUp = setInterval(moveSnakeUp, 1000)
walkDown = setInterval(moveSnakeDown, 1000)
//and
clearInterval(walkLeft)
clearInterval(walkRight)
clearInterval(walkUp)
我的问题是是否有任何方法可以再次调用相同的 SetInterval,在本例中为 walkRight 或 walkLeft 或 walkUp。他们中的任何一个..
如果我尝试 walkRight() 它不会工作,因为它不是一个函数,如果我尝试 window.walkRight 也不会工作。
setInterval
的 return 值是一个 数字 ,它标识间隔 仅 用于清除它。
无法使用该数字获取有关间隔的任何其他信息。您不能使用它来确定哪个函数用于 运行 间隔。您不能使用它再次调用该函数。
如果您需要该信息,则必须单独存储。
例如:
const moveSnakeRight = () => {
console.log('moving right');
};
class IntervalController {
constructor(func) {
this.func = func;
this.start();
}
start() {
if (typeof this.interval === "undefined") {
this.interval = setInterval(this.func, 1000);
}
}
stop() {
clearInterval(this.interval);
this.interval = undefined;
}
}
const moveRightController = new IntervalController(moveSnakeRight);
document.querySelector('#start').addEventListener('click', () => moveRightController.start());
document.querySelector('#stop').addEventListener('click', () => moveRightController.stop());
<button id=start>Start</button>
<button id=stop>Stop</button>