的Javascript運行循環我有一個電話程序接口,並呼籲人們的函數。我想知道,有沒有一種方法可以在一段時間內給人們打電話?指定時間
我想運行一個循環,如:
while(flag = 0){
call(people);
if(<ten minutes have passed>){
flag = 1;
}
}
任何幫助,將不勝感激。
的Javascript運行循環我有一個電話程序接口,並呼籲人們的函數。我想知道,有沒有一種方法可以在一段時間內給人們打電話?指定時間
我想運行一個循環,如:
while(flag = 0){
call(people);
if(<ten minutes have passed>){
flag = 1;
}
}
任何幫助,將不勝感激。
你可能想的setTimeout()
功能。
像這樣的東西應該工作(未經測試):
var keepCalling = true;
setTimeout(function() {
keepCalling = false;
}, 60000);
while (keepCalling) {
callPeople();
}
的另一種方法,如果您遇到的setTimeout()問題:
var startTime = Date.now();
while ((Date.now() - startTime) < 60000) {
callPeople();
}
不是電話推銷員或任何東西。反正我知道setTimeout的,但如果有其他代碼執行它不起作用: 的setTimeout(停止(),間隔); 而(notstop){} 將無法正常工作,因爲while循環的執行將保持的setTimeout()從以往的工作 – TheMonarch 2013-02-19 22:03:49
我明白了。如果你無法完成上述工作,我可能會抓住循環外的當前時間,然後從循環內的當前時間中減去它:如果以毫秒爲單位的結果大於60000,那麼你已經超過了10分鐘並應該退出循環。 – ChrisC 2013-02-19 22:18:35
這正是我想要做的!謝謝 – TheMonarch 2013-02-19 22:20:07
你應該像如下寫的東西,
while(flag == 0){
call(people);
}
setTimeout(function(){flag=1},60000);
嘗試'標誌== 0',而不是'標誌= 0' – ChrisC 2013-02-19 22:04:50
另外,使用'的setTimeout()'內循環,你會在每次循環周圍時間內生成超時。可能想把這個和'flag'變量移到'while'之外。 – Rodaine 2013-02-19 22:06:06
這不會重置循環的每次迭代的超時時間嗎?此外,不會停止第一次執行後的循環?我可能只是不清楚超時功能的工作原理。感謝您的幫助提前 – TheMonarch 2013-02-19 22:07:11
這似乎是執行此任務(在性能至少方面)非常危險的方式。從事件的角度來看它可能會更好:即,如果將「人」添加到「人」,然後撥打電話。 – Rodaine 2013-02-19 22:10:11
這很有道理。儘管如此,我還是需要一個時間間隔,所有這些都可以執行,我可以得到當前時間,然後減去直到達到足夠長的時間? – TheMonarch 2013-02-19 22:13:42
'setInterval()'在一段時間後重復執行一個動作。因此,如果您想每10秒鐘呼叫一次「(人)」,您可以這樣做。這樣就可以在人員中建立一個隊列,然後每隔一段時間執行一次。 – Rodaine 2013-02-19 22:16:05