【问题标题】:Is it possible to have a variable interval within a javascript function?是否可以在 javascript 函数中设置可变间隔?
【发布时间】:2022-12-10 18:21:10
【问题描述】:

我一直在尝试设置一种方法来改变将值递增一个时使用的间隔,但没有成功。它设置为每 9 秒递增一次,但我希望计数器看起来不那么机械化,而是通过数字的重复变化递增,例如 3 秒、7 秒、12 秒、10 秒和 13 秒(五个数字加起来为 45,以确保平均保持 9 秒)。

我试图将这些数字放入一个数组中,并通过它们循环“间隔”的值,但我现在意识到一旦函数启动,就无法在函数的上下文中更改该值。

非常感谢这里的任何建议。谢谢!

更多“机器人”计数的当前代码:

let interval = 9000;
let shiftCounter = {{ row.total }};

window.setInterval(function () {
  document.getElementById("shiftsCreated").innerHTML = shiftCounter.toLocaleString('en');
  shiftCounter = shiftCounter + 1;
}, interval); 

【问题讨论】:

    标签: javascript setinterval


    【解决方案1】:

    您可以改用 setTimeout,每次它完成时,通过选择随机延迟或您想要的任何顺序来调用新的超时。

    let counter = 0;
    const intervals = [3, 7, 10, 12]
    
    increment(0);
    
    function increment(timeout) {
        setTimeout(() => {
            console.log(`Counter: ${counter}.`)
            counter++;
            increment(intervals[Math.floor(Math.random() * intervals.length)] * 1000)
        }, timeout);
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2020-07-31
      • 1970-01-01
      • 2012-08-31
      相关资源
      最近更新 更多