Javascript 如何在JS中循环函数一段时间

Javascript 如何在JS中循环函数一段时间,javascript,Javascript,我读过有关学校的报道: setInterval()方法将等待指定的毫秒数,然后执行指定的函数,并将继续执行该函数,每个给定的时间间隔执行一次 setTimeout()方法将等待指定的毫秒数,然后执行指定的函数 我两个都试过了。然而,这不是我需要的 我想要一个函数,它将连续循环,直到达到持续时间 这方面有解决办法吗?谢谢 您可以在没有任何设置超时或设置间隔的情况下执行此操作: var start = new Date(); var timer_id = setInterval(function

我读过有关学校的报道:

  • setInterval()方法将等待指定的毫秒数,然后执行指定的函数,并将继续执行该函数,每个给定的时间间隔执行一次

  • setTimeout()方法将等待指定的毫秒数,然后执行指定的函数

我两个都试过了。然而,这不是我需要的

我想要一个函数,它将连续循环,直到达到持续时间


这方面有解决办法吗?谢谢

您可以在没有任何设置超时或设置间隔的情况下执行此操作:

var start = new Date();
var timer_id = setInterval(function() {
  // the duration is 10 seconds
  if (new Date() - start > 10000) {
     clearInterval(timer_id);
  } else {
     your_function();
  }
}, 1000); // every 1 second your function will run, you could change it by your needs.
var t1 = new Date().getTime();
var interval = 100;
while(new Date().getTime() - t1 < interval){
    // do stuff;
}
var t1=new Date().getTime();
var区间=100;
while(new Date().getTime()-t1

这将持续循环100毫秒。

您可以在没有任何设置超时或设置间隔的情况下执行此操作:

var t1 = new Date().getTime();
var interval = 100;
while(new Date().getTime() - t1 < interval){
    // do stuff;
}
var t1=new Date().getTime();
var区间=100;
while(new Date().getTime()-t1

这将持续循环100毫秒。

由于没有睡眠功能,此循环将占用您所有的CPU。另外,在某些JavaScript引擎中不会触发其他超时,因为它们是单线程的,需要在触发超时和间隔之前返回外部函数。通过
xdazz
查看解决方案,因此xdazz的答案更好?OP表示他希望函数“连续循环”,因此我特意提出了一个解决方案,在该函数循环时,实际上不会执行任何其他操作。由于没有睡眠功能,该循环将占用您所有的CPU。另外,在某些JavaScript引擎中不会触发其他超时,因为它们是单线程的,需要在触发超时和间隔之前返回外部函数。通过
xdazz
查看解决方案,因此xdazz的答案更好?OP表示他希望函数“连续循环”,因此我特意建议了一种解决方案,因为在该函数循环时,实际上不会执行任何其他操作。