我想每隔指定的秒执行一个函数,它应该永远循环。函数完成后,我想使用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() {
}
}
答案 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
。