javascript - 如何创建一个使用随机生成的间隔调用函数的连续循环

标签 javascript jquery html

我想每隔指定的秒执行一个函数,它应该永远循环。函数完成后,我想使用 2 到 5(代表秒)之间的随机生成值启动新的 setTimeout。

也许解释得不好但是..

这就是我目前所拥有的。

function Start() {
    let count = $("section.mosaic").find("a.item").length;

    ChangePic();

    setTimeout(function () {
        let interval = CREATOR.PUB.Utility.randomInterval(2, 5);

        console.log(interval);

    }, 3000);

    function ChangePic() {

    }
}

最佳答案

将区间代码移到ChangePic中,这样它就可以在完成时调用自己。

function Start() {
    let count = $("section.mosaic").find("a.item").length;

    ChangePic();

    function ChangePic() {
        // do stuff here

        let interval = CREATOR.PUB.Utility.randomInterval(2, 5);
        setTimeout(ChangePic, interval * 1000);
    }
}

请注意,这将在 Start 运行时立即调用一次 ChangePic,此后将开始随机间隔。如果您还需要延迟初始执行,您可以复制超时代码并运行它而不是调用 ChangePic();,或者将它移动到一个您同时调用的辅助函数中在 StartChangePic 中。

关于javascript - 如何创建一个使用随机生成的间隔调用函数的连续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800142/

相关文章:

javascript - 如何在 json 模式输出中使用 Javascript 变量

javascript - 箭头框过渡问题

html - 是否有一个(纯)CSS 运算符可以合并类声明?

javascript - 如何在 HTML 中包含外部 jQuery 文件?

javascript - 使用 Javascript 的简单幻灯片

javascript - 我使用 mysql 的快速端点路由记录错误 : connect ECONNREFUSED 127. 0.0.1

javascript - 如何使用 jQuery 解析 XML?

jquery选择菜单未触发正确的警报

javascript - 如何使用javascript删除加号按钮

html - 为什么相同大小的 iframe 会导致父 div 滚动?