我的页面上有两个函数需要定期调用,但只能以某种方式调用。
页面加载时需要定期运行function_a,直到有可用数据并下载为止。
此后,function_b然后需要永远定期运行。
我可以轻松地做...
setInterval(function_a, 1000);
setInterval(function_b, 5000);
但这将从页面加载开始一直运行这两个功能。
一旦确定不再需要function_a,如何停止运行,而仅在这一点之后开始运行?
我可以将检查放在function_a和function_b代码中,以便在不需要时不执行检查,但是在不需要时仍连续调用它们似乎非常浪费。
function_a(){
if (needed) { code here... }
}
function_b(){
if (needed) { code here... }
}
有没有比这更好的方法了?
最佳答案
在这里,setInterval
可以代替setTimeout
更好地工作。
function a() {
//do stuff
if(condition) setTimeout(b, 5000)
else setTimeout(a, 1000)
}
function b(){
//do stuff
setTimeout(b, 5000)
}
a()
这样,函数将执行并安排自己以所需的时间间隔再次运行。这类似于
requestAnimationFrame
用于创建动画的方式。关于javascript - 定期在javascript中调用函数,直到完成,然后开始调用其他函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47140018/