Angular $ http服务调用for循环并在for循环中使用闭包

时间:2017-09-19 09:27:09

标签: javascript angular

在以下代码中,我总是打印3

   var deleteDocuments = function() {
       for (var i = 0; i < 3; i++) {
           service.deleteDocument().then(function(res) {
               $log.debug("i=",i);

           });
       }
   };

service.deleteDocument()是一个简单的$ http呼叫服务。 我必须在这里使用闭包功能。
在上述条件下写入闭包的正确优化方法是什么?

1 个答案:

答案 0 :(得分:0)

闭包通常(基本上)是写在函数内部的函数。对于您正在执行的任务,我认为您无法“优化”闭包,因为您需要执行该操作。这是一个关闭的例子。

var deleteDocuments = function(src) {
       for (var i = 0; i < 3; i++) {
           closure(i);
       }

       function closure(i){
            //  Do something
          service.deleteDocument().then(function(res) {
               if (!$scope.isEKYC && $scope.uploadedDocument[i]) { 
               }
           });
       }
   };