在函数中写出每秒

时间:2018-04-18 20:24:18

标签: javascript setinterval

所以,我有一个功能,我想计算秒数。该函数开始正常计算秒数,但是当我再次启动该函数时,秒数会更快。我不知道这是什么。

var seconds = 0;

function newCall() {
  var min = 3000;
  var max = 20000;
  var rand = Math.floor(Math.random() * (max - min + 1) + min);
  console.log("TEST - random time: " + rand);
  seconds = 0;
  setInterval(timer, 1000);
  setInterval(newCall, rand);
}

newCall();

function timer() {
  seconds++;
  console.log("test " + seconds);
}

1 个答案:

答案 0 :(得分:0)

您的问题的评论解释了我的答案,但我在代码中添加了两条评论以提供帮助。 请查看以下代码是否符合您的要求。

var seconds = 0;
var time;

function newCall() {
  clearInterval(time); //CLEAR THE INTERVAL TO AVOID MANY INTERVALS AT SAME TIME
  var min = 3000;
  var max = 20000;
  var rand = Math.floor(Math.random() * (max - min + 1) + min);
  console.log("TEST - random time: " + rand);
  seconds = 0;
  time = setInterval(timer, 1000); //CHANGED HERE
  setTimeout(newCall, rand);
}

newCall();

function timer() {
  seconds++;  
  console.log("test " + seconds);
}