javascript - 在 angularJS + express 中使用 $q.all 重复响应 promise

标签 javascript angularjs angular-promise

当使用 $q.all() 获得多个响应时,我在响应对象中获得了相同的值。我得到了与声明的 promise 一样多的对象,但所有“名称”字段都具有相同的值(最后一个,3)。

.controller('myCtrl', function ($scope, $state, $q, myService) {

   $scope.myList = [];

   $scope.create = function() {
      var newObject;
      var promises = [];
      for(var i = 0; i < 4; i++){
        newObject = { name: i };
        promises[i] = myService.create(newObject);
      }
      $q.all(promises).then(
       function (response) {
         $scope.myList = response;
       }
      );
   };
}

这是我的服务:

    .service('myService', function ($http, $q, baseURL) {

       this.create = function(object) {
         var deferred = $q.defer();
         //console.log shows that object still has the proper 'name' value
         $http.post(url, object).then(
            function (response) {
              // console.log shows that all response objects have the same 'name' value.
              deferred.resolve(response);
            }
          );
         return deferred.promise;
       };
}

欢迎任何意见,因为这是我在 Angular 中实现 promise 的第一种方法。

最佳答案

通过在循环内移动 newObject 声明来解决,当我们重新声明变量时,promise 会保留先前值的副本。

关于javascript - 在 angularJS + express 中使用 $q.all 重复响应 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960362/

相关文章:

javascript - 带计数器的图像 slider

javascript - 为什么 AngularJS 指令与硬编码值一起工作但对 http 请求/响应失败?

javascript - $q.all() 中的错误处理

javascript - $uibModalInstance.close 不起作用

javascript - 如何在 auth 用户 vue.js 之后创建重定向?

javascript - Chart.js donut 段内的图片

javascript - 使用异步 ajax 调用的 Sinon/Mocha 测试没有返回 promise

javascript - Angularjs - 在获取模板时显示加载

javascript - 在可滚动表中隐藏垂直滚动

javascript - 对象中的 ng-options 和 ng-model 作为数据源