循环AngularJS$http调用-TypeError:对象不是函数



我正在编写一个脚本,用Dummy Data填充我的应用程序数据库,因为我厌倦了手动添加用户/朋友等,我通过嵌套AngularJS$http请求来实现这一点,这些请求与我的应用后端API/Rest服务通信。。。

到目前为止,一切都很好,但现在我需要循环异步调用,就像这样…请注意,这是第三个嵌套的$http调用

// 3. Create Auto Friend For that User
for (var i = 1; i < 6; i++) { // 6 is just a given number, it could be 1 or 100....
   ($http({method: 'POST', url: '/path/to/rest/friend', data: {"name":"Auto Friend " + i}})
      .then(function (response) {
         console.log("friend created");
         console.log(response);
      }, function () {
         console.log('Whoops...');
      }))(i); // THIS IS LINE 69
}

我当前收到以下错误。。。

TypeError: object is not a function
    at http://localhost:9000/assets/js/src/app/auth/controllers/AuthCtrl.js:69:40
    at wrappedCallback (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:10549:81)
    at http://localhost:9000/assets/js/vendor/bower/angular/angular.js:10635:26
    at Scope.$eval (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11528:28)
    at Scope.$digest (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11373:31)
    at Scope.$delegate.__proto__.$digest (<anonymous>:844:31)
    at Scope.$apply (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11634:24)
    at Scope.$delegate.__proto__.$apply (<anonymous>:855:30)
    at done (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:7635:45)
    at completeRequest (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:7801:7)

我对我的代码做了一些轻微的修改,但似乎什么都不起作用,我认为我的方法是错误的,而不是代码(但我可能错了)。有人对我如何克服这个问题有什么想法或建议吗?

我想我可能自己已经回答了这个问题,我没有用function包装代码。。。

for (var i = 1; i < 6; i++) { // 6 is just a given number, it could be 1 or 100....
   (function(i){
     http({method: 'POST', url: '/path/to/rest/friend', data: {"name":"Auto Friend " + i}})
      .then(function (response) {
         console.log("friend created");
         console.log(response);
      }, function () {
         console.log('Whoops...');
         });
      })(i);
}

下次我会在发帖前睁开眼睛,谢谢你的评论。。。

最新更新