javascript - Angularjs 中的并发

标签 javascript angularjs asynchronous concurrency

我有一个 Angular 应用程序,它使用 $http.get 进行大量异步调用,并且我的作用域中有一个计数变量($scope.count),用于跟踪我发出了多少请求以及有多少请求仍在等待中.显然,我是这样使用它的:

  • 在发出 $http.get 请求之前,我将计数加 1
  • 当我从 $http.get 获得响应时,我将计数减 1

我发出了很多请求,大约同时发出了 2000 个请求,但是 $scope.count 值即使在所有请求都完成后也不会回到 0,它总是大于 0(总是关闭1 或 2).我正在处理我的 $http.get 调用的成功和错误事件,并且每当其中一个发生时我都会减少计数。

所以我想知道 angular/javascript 是否能很好地处理并发?我在想我运行了很多次增量操作(可能同时运行很多次)并且 $scope.count 的值变得过时/不好,因为两个操作可以同时修改变量。

最佳答案

Javascript 运行单线程(事件循环),因此并发问题是不可能的。

您应该尝试做的是使用拦截器。文档有很好的 example .

你可以依靠 $rootScope

关于javascript - Angularjs 中的并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263564/

相关文章:

javascript - 像在 php 中回显一样用 JS 插入代码

javascript - 覆盖元素是否总是需要位于 HTML 正文的末尾?

javascript - 类型错误 : Cannot read property 'success' of undefined

angularjs - angularjs 中重复的 ajax 调用

angularjs - Angular : append html in dom element

python - celery 运行错误

javascript - CoffeeScript 中的类指针?

angularjs - ng-cordova 文件传输插件中的文件上传错误代码 1

javascript - 将 "quiz"建模为异步 "long running process"

c++ - 在 boost asio 中为异步操作的函数处理程序分配线程的困难