Javascript在指定时间内运行循环
我有一个与电话程序接口的函数,可以调用人。我想知道,有没有一种方法可以让我在一段时间内给别人打电话 我想运行如下循环:Javascript在指定时间内运行循环,javascript,timing,Javascript,Timing,我有一个与电话程序接口的函数,可以调用人。我想知道,有没有一种方法可以让我在一段时间内给别人打电话 我想运行如下循环: while(flag = 0){ call(people); if(<ten minutes have passed>){ flag = 1; } } while(标志=0){ 呼叫(人); if(){ flag=1; } } 任何帮助都将不胜感激。您可能需要setTimeout()功能 类似的方法应该可以工作(未经测试
while(flag = 0){
call(people);
if(<ten minutes have passed>){
flag = 1;
}
}
while(标志=0){
呼叫(人);
if(){
flag=1;
}
}
任何帮助都将不胜感激。您可能需要
setTimeout()
功能
类似的方法应该可以工作(未经测试):
如果setTimeout()有问题,可以使用另一种方法:
var startTime=Date.now();
而((Date.now()-startTime)<60000){
callPeople();
}
您应该编写如下内容:
while(flag == 0){
call(people);
}
setTimeout(function(){flag=1},60000);
不是电话推销员什么的。无论如何,我知道setTimeout,但如果有其他代码执行,它就不起作用:setTimeout(stop(),interval);while(notstop){}不起作用,因为while循环的执行将使setTimeout()永远无法工作。如果你不能让上面的方法发挥作用,我可能会获取循环外的当前时间,然后从循环内的当前时间中减去它:如果以毫秒为单位的结果大于60000,那么你已经超过了10分钟,应该退出循环。这正是我想做的!ThanksI编辑了我的答案,以展示如何执行替代方法。您需要将>60000切换到<60000 fyiTry
flag==0
,而不是flag=0
。此外,在循环中使用setTimeout()
,每次循环时都会生成超时。您可能希望将其和标志
变量移到之外,而则会在循环的每次迭代中重置超时吗?而且,这不会在第一次执行后停止循环吗?我可能只是不清楚超时函数是如何工作的。提前感谢您的帮助这似乎是执行此任务的一种非常危险的方式(至少在性能方面)。从事件的角度来看可能更好:即,如果人
被添加到人
,然后打电话。这很有意义。尽管如此,我还是想要一个执行所有这些操作的时间间隔,我是否可以得到当前时间,然后减去,直到达到足够大的时间?setInterval()
在一定时间后重复执行操作。因此,如果您希望每隔10秒呼叫(人员)
,您可以这样做。这样就可以在人中建立队列,然后每隔一段时间执行一次。
var startTime = Date.now();
while ((Date.now() - startTime) < 60000) {
callPeople();
}
while(flag == 0){
call(people);
}
setTimeout(function(){flag=1},60000);