2011-05-28 37 views
2

所以我通過this讀了一下,它看起來像JavaScript函數不能在中途運行時被明確地殺死。如果我有一個管理這個變量的全局變量window.currentlyProcessing怎麼辦?我可以停止通過全局變量執行JavaScript函數嗎?

function contentsChanged() 
{ 
    if(window.curentlyProcessing == true) 
    { 
     return; 
    } 
    window.curentlyProcessing = true; 
    // DO STUFF 
    window.curentlyProcessing = false; 
} 

由於contentsChanged被調用了很多,這將有效地從自身上停止運行呢?

+0

您遇到的問題是什麼導致您嘗試這樣做?爲什麼經常調用「contentsChanged」? – 2011-05-28 02:05:32

+0

@cwolves - 每次擊鍵都會被調用 – Shamoon 2011-05-28 02:08:13

回答

5

Javascript是單線程的 - 一次執行一個函數,函數永遠不會「自行超越」。 contentsChanged會被調用,會執行到最後,然後會發生任何其他的東西。

+0

恩,這並不是真的正確(http://bradkellett.com/p/javascript-worker-threads/),雖然我不確定這是說你有沒有根本不擔心併發。 – Jonathon 2011-05-28 02:23:49

+3

@Jonathon是的,但你需要明確地使用網絡工作者,如果你做了,你不會問這個問題。原諒我保持簡單的答案。 – deceze 2011-05-28 02:26:05

0

如果邏輯已經運行,將阻止邏輯運行。如果這是你需要做的,它應該工作。

相關問題