在使用setInterval的Javascript代码中,为什么每次n都不相同?

问题描述 投票:0回答:2

n每个循环都是相同的,即使我在setInterval的每次迭代中都设置不同。任何人都知道一种解决方法或我每次都能随机化n的另一种方法吗?

    var n = random(1000, 5000);
let toptimer = setInterval(()=>{
    n = random(1000, 5000);
    obs.push(new obstacle(800, 200, 255));
},n);
javascript variables random p5.js
2个回答
0
投票

就我想而言,您想实现的目标无法在setInterval中实现。您可以按以下方式使用setTimeout并完成工作。

function foo() {
  var n = Math.random(1000, 5000);
  setTimeout(()=>{
    obs.push(new obstacle(800, 200, 255));
    foo();
  },n);
}

0
投票

当调用setInterval(func,interval)时,将间隔设置为参数,然后定期调用func

如果您想更改持续时间,则应尝试此操作

var n = random(1000, 5000);
var exit = false;
var func = () => {
  if(!exit) {
    n = random(1000, 5000);
    obs.push(new obstacle(800, 200, 255));
    setTimeOut(func , n );
  }
}
setTimeOut(func,n);
© www.soinside.com 2019 - 2024. All rights reserved.