2010-09-14 54 views
3

JavaScript的超時功能延遲執行是用的setTimeout

setTimeout(fun, 3600); 

但如果我不希望運行其它任何功能。我可以做setTimeout(3600);嗎?

+4

嗯,如果你不運行的另一個功能是什麼,你需要超時? – NullUserException 2010-09-14 18:50:42

+4

如果在計時器結束時沒有運行,爲什麼要創建一個計時器?您的總體目標的更多背景將對此有所幫助。 – 2010-09-14 18:50:49

+3

如果你希望這樣做,讓javascript「睡眠」,超時不會暫停執行。 – 2010-09-14 18:54:03

回答

6

我不確定你想要做什麼。如果你想在這段時間後沒有任何事情發生,爲什麼你首先需要一個setTimeout()

2

你總是可以通過一個處理這什麼也不做:

setTimeout(function() { }, 3600); 

但我很難想象在這將是有用的任何情況。

10

根據你所說的你只是試圖延遲執行一個函數。

說,例如,你想運行一個警報,2秒鐘第二警報,像這樣經過:

alert("Hello") 
sleep 
alert("World") 

在JavaScript中,只有100%兼容的方式來完成,這是分裂的功能。

function a() 
{ 
alert("Hello") 
setTimeout("b()",3000); 
} 
function b() 
{ 
alert("World"); 
} 

您也可以申報的setTimeout本身的功能,像這樣

function a() 
{ 
    alert("Hello"); 
    setTimeout(function() { 
    alert("World"); 
    },3000); 
} 
+2

'setTimeout()'接受一個函數*然後*延遲,同時儘量避免傳遞字符串,只是'setTimeout(b,3000);'會做。 – 2010-09-14 18:57:05

+0

或'setTimeout(function(){b();},3000)' - 例如...如果您想要使用參數,則很有用。 'setTimeout(function(){b(arg1,arg2);},3000)'....也是'setTimeout(code,delay)'而不是其他方式。 – 2010-09-14 18:59:19

+0

@Peter - 除非您將'b()'函數更改爲* return *函數傳遞給'setTimeout()',否則這將不起作用。儘管如此,你對於論點的順序是正確的。 :o) – user113716 2010-09-14 19:03:51