如何使异步函数作为阻塞函数(同步)运行的循环AngularJs?

如何使异步函数作为阻塞函数(同步)运行的循环AngularJs?,angularjs,asynchronous,Angularjs,Asynchronous,我在angularJS中有如下代码: $scope.myArray= [{name:"thomas", parentId: 1}, {name:"john", parentId: 2}] for(var i = 0; i< $scope.myArray.length, i++){ // I wish this code run as blocking code $http.get('getParentById'+$scope.myArray[i].parentId).the

我在angularJS中有如下代码:

$scope.myArray= [{name:"thomas", parentId: 1}, {name:"john", parentId: 2}]
for(var i = 0; i< $scope.myArray.length, i++){
    // I wish this code run as blocking code
    $http.get('getParentById'+$scope.myArray[i].parentId).then(function(result){
        if(result){
            $scope.myArray[i].parentName = result.data;
        }
    });
}
$scope.myArray=[{name:“thomas”,parentId:1},{name:“john”,parentId:2}]
对于(变量i=0;i<$scope.myArray.length,i++){
//我希望这段代码作为阻塞代码运行
$http.get('getParentById'+$scope.myArray[i].parentId.),然后(函数(结果){
如果(结果){
$scope.myArray[i].parentName=result.data;
}
});
}
我的意图非常清楚,为Http请求获取的每个对象分配parentName。但问题在angularJs中是异步的。我试过很多方法,但都无法解决。有人能解决这个问题吗


编辑:我在下面的评论中得到了答案。解决方案是使用angular.foreach()

从使用块范围迭代器
i
开始,而不是使用函数范围,或者更好地使用数组类方法
foreach
。您能更清楚地解释一下吗?什么是使用块作用域迭代器i?如果你不熟悉块作用域,你需要自己学习——有很多关于它的网页。在这里,这意味着每个循环都有自己的
i
副本,而不是共享一个副本。正如您提到的,我使用了array foreach,它工作得非常好。非常感谢您免费发布您的解决方案作为答案,然后在等待期后接受