2017-09-19 112 views
0

在下面的代码我总是打印3

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

      }); 
     } 
    }; 

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

回答

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]) { 
       } 
      }); 
     } 
    };