gpt4 book ai didi

javascript - 如何让Javascript每x秒执行一段代码,但让它在函数完全执行之前等待?

转载 作者:行者123 更新时间:2023-11-27 23:06:51 25 4
gpt4 key购买 nike

这里我有一段每 2 秒自动执行一次的代码。然而,执行函数 roll() 所需的时间因互联网连接的高峰和低谷而异。我试图让函数 roll() 每 2 秒自动执行一次,但代码必须等到函数完全执行后才能继续并再次自动执行。

附注任何对此问题更好标题的建议将不胜感激。

var init = 0.01

var start = init
var $odds = $("#oddsOverUnder")
var $button = $("#roll")
var $bet = $("#bet")

function roll() {
$bet.val(start)
$button.click()
setTimeout(function() {
var tr = document.querySelector("#myBetsTable tr:nth-child(2)")
var cls = tr.getAttribute('class')
if (cls === 'success'){
start = init
$bet.val(start)}
else{
start = start * 2
$bet.val(start)
$odds.click()}
$button.click();
setTimeout(function() {
$button.click();
},1000);
},1000);
}

setInterval(roll, 2000)

最佳答案

不要使用setInterval。它会在耗时后尝试调用函数,无论它是否完成。 setTimeout 更好,因为您可以控制它何时被调用。通常,您只需在函数末尾调用它(它调用自身的地方)。

例如

function draw() {
// Some drawing here...
setTimeout(draw, 50);
}

因此,当您调用上面的 draw() 时,它将执行其操作,然后等待 50 毫秒,然后再次重复调用自身。

参见here有关差异的更多详细信息。

关于javascript - 如何让Javascript每x秒执行一段代码,但让它在函数完全执行之前等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36509387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com