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

时间:2018-12-16 07:08:36

标签: 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() {

    }
}

1 个答案:

答案 0 :(得分:2)

将间隔代码移到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);
    }
}

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