n每个循环都是相同的,即使我在setInterval的每次迭代中都设置不同。任何人都知道一种解决方法或我每次都能随机化n的另一种方法吗?
var n = random(1000, 5000);
let toptimer = setInterval(()=>{
n = random(1000, 5000);
obs.push(new obstacle(800, 200, 255));
},n);
就我想而言,您想实现的目标无法在setInterval中实现。您可以按以下方式使用setTimeout并完成工作。
function foo() {
var n = Math.random(1000, 5000);
setTimeout(()=>{
obs.push(new obstacle(800, 200, 255));
foo();
},n);
}
当调用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);