Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在Javascript/AngularJS中同步并发调用吗?_Javascript_Angularjs_Multithreading - Fatal编程技术网

可以在Javascript/AngularJS中同步并发调用吗?

可以在Javascript/AngularJS中同步并发调用吗?,javascript,angularjs,multithreading,Javascript,Angularjs,Multithreading,在Java中,我可以这样声明synchronized方法: public int synchronized myMethod () { int i = 0; i++; return i; } 这可以防止两个或多个线程同时进入该方法(即,其他线程将等待阻塞线程完成)。Javascript/AngularJS中有类似的概念吗?Javascript中不需要同步方法,因为它是严格单线程的。当一个方法正在运行时,没有其他线程运行任何代码 (作为单线程的例外情况是后台工作线程,但它

在Java中,我可以这样声明
synchronized
方法:

public int synchronized myMethod () {
    int i = 0;
    i++;
    return i;
}

这可以防止两个或多个线程同时进入该方法(即,其他线程将等待阻塞线程完成)。Javascript/AngularJS中有类似的概念吗?

Javascript中不需要同步方法,因为它是严格单线程的。当一个方法正在运行时,没有其他线程运行任何代码


(作为单线程的例外情况是后台工作线程,但它们不与主线程共享数据。)

如果我的方法发出http请求并等待响应,则可能重复,这意味着在第一个方法收到响应并继续/最终运行该方法之前,不会运行其他方法?否,这意味着,在响应到来之前,javascript调度程序可以自由运行其他javascript。但是处理程序和其他javascript都不会中断其他javascript。好处是您永远不需要同步对象。缺点是,如果您不小心编写了一个永不放弃控制权的无限循环,则会使页面无响应。@pgschr:如果您发出请求并等待响应(同步请求),则在此期间不会运行其他代码。在等待响应时,浏览器也将冻结。如果发出异步请求,则响应将在事件处理程序中处理。事件处理程序将在请求到达后立即运行,并且没有其他代码正在运行。