2009-11-24 102 views
2

我必須失去了一些東西在這裏很明顯,因爲一些比較奇怪的是發生的setTimeout(FN(),延遲)犯規預期延遲

我有一點的JS代碼,那張很像這個

setTimeout(myFn(), 20000); 

如果我正確的時候,我打那條線,20秒後myFn應該運行正確嗎?

在我的情況myFn

是一個Ajax調用,它發生相當快(不20秒,我只是不明白爲什麼任何意見或指針

+0

昨晚有人有同樣的錯誤。這是新的流行的JavScript錯誤嗎? – Nosredna 2009-11-24 16:22:15

+0

當我第一次將服務端代碼移出到客戶端時,這是我的第一個錯誤... – JoshBerke 2009-11-24 16:26:53

+0

感謝您的及時回覆 – roundcrisis 2009-11-24 16:56:03

回答

12

嘗試

的setTimeout(myFn,20000);?

當你說的setTimeout(myFn(),20000)你告訴它來評估myFn(),20秒後調用的返回值。

4

的問題是,myFn()是一個函數調用沒有函數指針。 你需要做的:

setTimeout(myFn, 20000); 

否則myFn將在設置定時器之前運行。

1

刪除()。如果你把它們,函數直接調用。沒有它們,它就通過這個函數作爲參數。

2

不,正確的路線將是setTimeout(myFn, 20000);

在你的,你實際上調用myFn無延遲,在同一行,其結果將於20秒後才能運行。