我搜索了周圍,發現了一些其他類似的問題,但我似乎無法找到解決方案或明確的解釋。setTimeout在循環中:回調發生在它們之間沒有任何延遲
var content = 'test<br />';
for(var i = 1; i < 6; i++) {
setTimeout(function() {
document.write(content);
}, 3000);
}
我希望for循環中的代碼執行5次,每個循環之間有3秒的延遲。當它運行時,至少在表面上看起來像是頁面加載時的三秒延遲,然後毫不拖延地遍歷所有循環。
我錯過了什麼?
將3秒與計數器相乘。另外請注意,如果在頁面加載後調用document.write – mplungjan 2013-02-16 18:59:29
儘管javascript基於事件,但它有助於將'setTimeout'作爲觸發未來給定時間的事件,並將函數作爲參數提供爲該事件的處理程序(即使沒有創建事件對象)。 – 2013-02-16 19:01:33
*每個*回調函數都會在循環運行時執行3秒*。 mplungjan建議在3,6,9等時間調度一個秒。 – 2013-02-16 19:02:04