所以我在函数之外声明了空白变量。
//To be Timeouts
var progressionTimer;
var nextTimer;
var cycleTimer;
然后在函数
中progressionTimer = setTimout(loadNextFunction, 2000);
progressionTimer();
nextTimer = setTimeout(loadOutsideFunction, 2000);
nextTimer();
//etc
然而每当其中一个声明被称为
时nextTimer();
我在chrome / firefox / etc中的控制台填充了这个
Uncaught TypeError: number is not a function
它完全按照预期运行,clearTimeout可以正常工作,但是控制台错误让我感到沮丧,任何人都可以在不失去功能的情况下解决这个问题并且仍然可以使用clearTimeout吗?
答案 0 :(得分:1)
setTimeout
返回一个处理程序,一个允许您引用超时的ID,以便您可以使用clearTimeout
清除它,这是一个数字。
不返回一个可以执行的函数,这就是问题,你试图执行setTimeout
的返回值
nextTimer = setTimeout(loadOutsideFunction, 2000);
nextTimer(); // not a function, but a number referencing the timeout ?
clearTimeout(nextTimer); // works just fine