我的页面上有两个函数需要定期调用,但只能以某种方式调用。

页面加载时需要定期运行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/

10-08 22:39
查看更多