2015-01-17 46 views
0

參見下面的代碼的Javascript定時器以何種順序

vat t = setTimeout(x, 1000); 
vat t1 = setTimeout(y, 1100); 
var t2 = setTimoue(z, 4000); 

執行順序爲t,t1和t2。所以,t在1s後執行。直到這裏都很好。那麼t1是在100ms(1100-1000)後執行還是在t執行後1100ms執行?

+6

如果只有某種方法可以找出... – JJJ

+0

t1在t後100ms執行。你有沒有在setTimeout手冊上搜索它? –

+0

立即返回對'setTimeout()的調用。換句話說,這三個電話幾乎不會消耗時間。 – Pointy

回答

1

t1將在t執行後的100ms執行。

但實際上,如果頁面繁忙,setTimeout可能會稍後觸發,以便它可以小於或大於100ms。

-1

JavaScript是單線程的。如果某些代碼塊使用執行線程,則不能執行其他代碼。這意味着你的setTimeout()調用必須等到主執行完成。 [from here] setTimeout behaviour with blocking code

1

以上是正確的答案,儘管我會鼓勵你,在可能的情況下,在你的瀏覽器中打開JavaScript控制檯並自己弄清楚。 console.log(Date.now())在你的代碼中並測試它。當我第一次進入編程時,我總是會轉向專業人士尋求簡單問題(出於習慣),但根據我的經驗,成功編寫代碼通常意味着知道如何得到答案,而不是僅僅知道答案是什麼。

此外,我認爲如果您自己發現而不是僅僅告訴您的人,您更有可能記得答案。

祝你好運!

相關問題