2个功能同时执行。可能吗?

时间:2014-10-10 07:34:31

标签: javascript

我们假设我有以下代码:

var funcIsRunning = 0;
function a(){
   funcIsRunning = 1;
   // some code ... (maybe lots of code);
   funcIsRunning = 0;
}

是否有一些异步函数会在' 1'中捕获funcIsRunning标志。位置? (例如XHR的回调或通过setTimeout调用的函数等) 或者,哪个是相同的,可以同时执行两个函数(不是一个接一个)?

只是为了说清楚......事实上,我不必同时运行2个功能......我只是想知道它是如何工作的。

P.S。如果您能提供答案的文件/基础,我将非常感激 非常感谢!


在这里做了一个测试,说明了给定的答案:http://jsfiddle.net/rz7tvyof/

2 个答案:

答案 0 :(得分:2)

不,JavaScript是单线程的,一次只运行一个函数。虽然,如果你有一个回调函数等待,例如,一个恰好在funcIsRunning = 1返回的网络请求,那么该回调函数将被置于由事件循环处理的队列中

JavaScript event loop explained

答案 1 :(得分:2)

通常不用于事件循环。但是您可以使用Web Workers并行运行代码(具有一些限制,例如访问DOM等)。

Worker documentation