我是新來的JavaScript的來自Java,我試圖實現一個sleep(millis)
函數。基本上我需要向一個端點發出請求,如果它返回一個錯誤,請稍等一會再發出請求...使用Javascript的睡眠功能
我發現JavaScript的setTimeout()
函數,但它有一個奇怪的(對我來說)行爲,因爲它似乎代碼仍然在運行,我不想做任何事情,但稍候...
了一些研究之後,我發現這個功能here:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
隨着這個功能我實現了我想要的,但我知道它可能不是正確的方法,我沒有找到任何其他解決方案所以,我想知道,在你看來,這是:
- 一個完全有效的解決方案?
- 一個不錯的解決方法?
- 對你的眼睛只是痛苦?
我寧願用'setTimeout'安排我跑比吃了CPU資源循環那樣的。 – NilsH 2013-05-08 12:02:15
檢查此問題http://stackoverflow.com/questions/951021/what-do-i-do-if-i-want-a-javascript-version-of-sleep – 999k 2013-05-08 12:03:09
您可以通過適當的方式和JavaScript方式執行此操作。向端點發出ajax請求並獲取響應,像這樣處理它。如果出錯,請給出與'setTimeout'的參數相同的函數。否則使用你的timeoutId來清除'clearTimeout'。 – smitrp 2013-05-08 12:08:37