我想用setInterval编写嵌套的定时代码。我尝试了以下操作,但浏览器(Chrome 和 FF)没有任何响应:
setInterval(function() {
console.log('1');
setInterval(function(){
console.log('2');
},5000);
}, 2500);
我预计上面的代码会在开始之前等待两秒半,然后 log('1'),然后等待五秒,然后 log('2')。发生的情况是我没有收到两个浏览器的响应(为什么?)
第二点,我用window.alert替换了console.log。这次我得到了回应。但不是想要的。我得到的第一个响应是在 2 秒半后,第二个响应是在 5 秒后,但随后两个功能开始同时发生。
所以,我想要实现的目标是:两个代码块,两个不同的时间间隔,并且两个代码块不会同时出现。
最佳答案
在您的代码中,每次“外部”间隔运行时都会创建一个间隔。在下面的示例中,将创建第一个间隔,并在 2500 毫秒的超时
后创建第二个间隔。
setInterval(function(){
console.log('1');
}, 2500);
setTimeout(function(){
setInterval(function(){
console.log('2');
}, 5000);
}, 2500);
关于JavaScript 嵌套 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794354/