代码之家  ›  专栏  ›  技术社区  ›  SteinTech

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

  •  1
  • SteinTech  · 技术社区  · 7 年前

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

    也许解释得不好,但是……

    这就是我目前为止所拥有的。

    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() {
    
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Hydrothermal    7 年前

    将间隔代码移入 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(); 或者将其移动到您在内部同时调用的助手函数中 起点 改变历史的 .