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

标签 javascript angularjs

<分区>

我想从 3 个仅 ID 不同的源 URL 获取数据。我得到的结果很好,但顺序不对。我的代码是: var data = [{"id":"1"},{"id":"2"},{"id":"3"}]; var get = []; for(i=0;i<(data.length);i++){ $http.get("server URL"+data[i].id) .success(function(data) { get.push(data); }) .error(function(err) { console.log(err); }); }$scope.data= get; 我也做过研究和尝试,但无法使其正常工作。 我也试过this链接但对我没那么有用。

最佳答案

你应该使用 $q.all为此。

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

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

关于javascript - 从 $http.get() 返回的数据不是序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565235/

相关文章:

javascript - 监视指令属性

javascript - 更新 ng-view 而不更新 url

javascript - 在谷歌图上显示服务器端txt文件的数据点

javascript - 为什么 v-for 只能工作一瞬间?

php - 在 session 变量中存储值,并检查它

php - 帮助生成事件菜单项的 ID

javascript - x.controller 和 .controller 之间的区别

javascript - Angular 遍历选择选项并设置选定值

asp.net-mvc - Json.Net:Html Helper Method 未重新生成

javascript - 成功获取api但没有响应