Javascript 从$http.get()返回的数据不是序列

Javascript 从$http.get()返回的数据不是序列,javascript,angularjs,Javascript,Angularjs,我想从3个仅id不同的源URL获取数据。我得到的结果很好,但不是按顺序。我的代码是: 变量数据=[{id:“1”},{id:“2”},{id:“3”}]; var get=[]; 对于(i=0;i您应该使用 var data = [{"id":"1"},{"id":"2"},{"id":"3"}], promises = []; for(i = 0; i < data.length; i++) promises.push($http.get("server URL"+d

我想从3个仅id不同的源URL获取数据。我得到的结果很好,但不是按顺序。我的代码是:

变量数据=[{id:“1”},{id:“2”},{id:“3”}];
var get=[];
对于(i=0;i您应该使用

var data = [{"id":"1"},{"id":"2"},{"id":"3"}],
    promises = [];

for(i = 0; i < data.length; i++)
    promises.push($http.get("server URL"+data[i].id));

$q.all(promises)
    .then(function(result) {
        $scope.data = result;
    }, function(err) {
        console.log(err);
    });
var data=[{“id”:“1”},{“id”:“2”},{“id”:“3”},
承诺=[];
对于(i=0;i

结果将是一个数组,其结果按请求的顺序排列。

您可以执行以下操作:

var data = [{"id":"1"},{"id":"2"},{"id":"3"}];
var get = [];
var i = 0;
function loadDataInSequence(){
  if(i<data.length){
    $http.get("server URL"+data[i].id)
        .success(function(data) { 
                get[i] = data;//calling callback
            loadDataInSequence();
        })
        .error(function(err) {
            console.log(err);
        });
        i++;
  }
}
$scope.data= get;
var data=[{“id”:“1”},{“id”:“2”},{“id”:“3”}];
var get=[];
var i=0;
函数loadDataInSequence(){

如果(i对于这种情况,有一个库称为。 您可以使用异步并行代替for循环。
还有一些帮助工具,如系列和限制,用于不同类型的需求。

你能抓拍结果吗?我使用了我的代码演示,所以我不能发布我实际代码的演示。对不起。我得到了承诺。那不是函数错误。你能帮我吗?@Atula抱歉,我更新了我的答案,我忘了
q。所有
谢谢非常@Martijn,现在一切正常。