我想每隔指定的秒执行一个函数,它应该永远循环。函数完成后,我想使用 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();
,或者将它移动到一个您同时调用的辅助函数中在 Start
和 ChangePic
中。
关于javascript - 如何创建一个使用随机生成的间隔调用函数的连续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800142/