2011-05-28 61 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

如果逻辑已经运行,将阻止逻辑运行。如果这是你需要做的,它应该工作。

相关问题