我们假设我有以下代码:
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/
答案 0 :(得分:2)
不,JavaScript是单线程的,一次只运行一个函数。虽然,如果你有一个回调函数等待,例如,一个恰好在funcIsRunning = 1
返回的网络请求,那么该回调函数将被置于由事件循环处理的队列中
答案 1 :(得分:2)
通常不用于事件循环。但是您可以使用Web Workers并行运行代码(具有一些限制,例如访问DOM等)。