重置具有不同值的JavaScript时间间隔?

Ant*_*lia 1 javascript node.js

我有一个小问题,我似乎无法解决.我有一个简单的JavaScript代码,我想创建一个随机数秒的Interval,然后在它完成之后它应该重新开始并再次进行随机的秒数.

我的代码看起来像这样

var selectedtimes = [3000, 5000, 15000, 10000]
var randtimes = selectedtimes[Math.floor(Math.random() * selectedtimes.length)];

var sti = setInterval(function() {
  console.log("now")
}, randtimes);

function restartsti() {
  var restartinterval = setInterval(restartsti, selectedtimes[Math.floor(Math.random() * selectedtimes.length)]);
}
Run Code Online (Sandbox Code Playgroud)

我试图创建第二个函数,它将重新启动间隔,但此时间隔只需要一个随机数,并且只使用该特定数字作为持续时间.

为了简化我的Node.js控制台应该在每个randtimes秒显示"now"

对此有何解决方案?

我很感激任何帮助

Luk*_*vat 5

setInterval 当延迟旨在保持一致时,适合使用.

由于你的延迟每次都不同,所以最好在setTimeout这里使用:

var times = [3000, 5000, 10000, 15000];

function start() {    
  console.log("now");
  var randTime = times[Math.floor(Math.random() * times.length)];
  setTimeout(start, randTime);
}

start();
Run Code Online (Sandbox Code Playgroud)