JavaScript 嵌套 setInterval

标签 javascript jquery

我想用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/

相关文章:

javascript - 我可以将 API 中的信息放到另一个页面吗?

javascript - nodejs 加密模块 privateEncrypt() 总是返回相同的结果

jquery - 如何设置此 cookie 永不过期

javascript - 逐格平滑滚动

java - 如何在restful服务中进行正则表达式过滤

javascript - 在 Jest 中使用 'new' 关键字模拟外部服务

javascript - 单击动态创建的按钮时如何暂停嵌入式 mp4 的播放?

javascript - 如何仅在选择框和复选框后启用按钮

javascript - 如何在 Javascript 中旋转 map (Meteor/famo.us)

c# - 在第一个下拉列表中选择后自动填充第二个下拉列表项