Javascript 设置间隔的替代方案?

Javascript 设置间隔的替代方案?,javascript,function,Javascript,Function,我只是想问一下,是否有像setInterval()这样的方法可以暂停,以便执行另一个命令。我正在编码一个交通灯系统,每个图像都会出现在屏幕上(这些是灯)并保持不同的时间,这就是为什么我不能使用setInterval()或setTimeout,因为它是按顺序播放的。您可以使用一个变量来控制interval函数的行为 var enabled = true; setInterval(function() { if (!enabled) { return; } /

我只是想问一下,是否有像
setInterval()
这样的方法可以暂停,以便执行另一个命令。我正在编码一个交通灯系统,每个图像都会出现在屏幕上(这些是灯)并保持不同的时间,这就是为什么我不能使用
setInterval()
setTimeout
,因为它是按顺序播放的。

您可以使用一个变量来控制interval函数的行为

var enabled = true;
setInterval(function() {
    if (!enabled) {
        return;
    }
    // rest of code here
}, period);

然后,其他一些代码可以将
enabled
设置为
false
,间隔函数将被有效暂停。

只需使用带有
setTimeout
的递归方法。您可以使用循环代替。要做更多的工作,但计时器只是花哨的循环。你不能暂停函数的执行,也不能中止当前正在运行的函数。因此,您无法恢复给定的函数。您所能做的是创建一个应该按顺序执行的函数数组,允许在每个函数之后执行其他任务。