javascript - 更新javascript中的延迟函数

标签 javascript function intervals

我有一个简单的 javascript 函数,可以加载文档就绪:

var start = 1;
var speed = 1000;
    $(document).ready(function () {
        go();
        setInterval(function () {
            go();
        }, speed);

这是函数的详细信息:

function go() {
    $("#score").html(start.toLocaleString());
    start += 1;
}

这基本上是一个从数字 1 开始到无穷大的计数器,速度为 1000 毫秒。事情是这样的:我有另一个功能:

function modify() {
  speed = 500;
}

调节 main 函数的 setIntval 速度。问题是它仅适用于页面刷新。如何在不刷新页面的情况下实时更新?

最佳答案

你不能更新当前的,你必须停止它并设置一个新的计时器,它做同样的事情但有不同的延迟。

var speed = 1000;
var start = 1;
function go() {
    $("#score").html(start.toLocaleString());
    start += 1;
}

function startGoTimer(){
  return = setInterval(function () {
      go();
    }, speed);
}

function modifyTimer( previousTimer, newDelay=500) {
    clearInterval(previousTimer);
    speed = newDelay;
    startGoTimer();
}

var timer = startGoTimer();
// Some code
modifyTimer(timer, 500);

为了好玩,我只是测试了如果你只是改变时间会发生什么:

var timing = 1000;
var interval = setInterval(function(){console.log("test")}, timing);
// Now we get a log every 1000ms, change the var after some time (via console):
timing = 10;
// still an interval of 1000ms.

关于javascript - 更新javascript中的延迟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436399/

相关文章:

javascript - 你如何在两个功能之间暂停?

javascript - 给定一个存储为 [{name, value},...] 的区间,我如何找到 x 所在的位置?

python - 将彼此时间范围内的任意日期对象组合在一起

javascript - 使一个间隔开始另一个间隔

javascript - MDN "Object.is"替代提案

javascript - 如何在 TypeScript Angular 中使用外部 Javascript

javascript - 从 3xx : Redirection HTTP response with Web Extension 获取重定向位置 (URL)

javascript 如何 "dereference"变量的内容用作变量名称?

javascript - 适合缩放的 slider 值的函数

function - 对 Haskell 中的函数组合感到困惑