繁体   English   中英

在AngularJS中循环$ http.get请求

[英]Looping $http.get requests in AngularJS

我正在使用Marvel API,因为我正在构建一个角色展示,但Marvel将您在单个get请求中可以检索的结果数量限制为100。

我试图把它放在for循环中,但它不起作用。 我试图实现一个方法建议作为解决方案whilefor循环使用$http.get

我的代码:

var loopRequests = function(i){
      $scope.offsetParam = 0;
      $http.get($scope.baseUrl, {
        params: {
          offset: $scope.offsetParam,
          limit: 100,
          ts: $scope.timeStamp,
          apikey: $scope.publicKey,
          hash: $scope.hash
        }}).then(function(response){

        $scope.characters = response.data.data.results;

      });
}

for(var i = 0; i < 2; i++){
  loopRequests(i);
  $scope.offsetParam += 100;
}

这是我想要实现的目标:

  • 请求1:偏移0,限制100
  • 请求2:抵消100,限制100
  • 请求3:抵消200,限制100
  • 要求4:抵消300,限制100等......

任何帮助都将不胜感激。

//编辑:需要等待最后一个请求完成

我认为你需要传递偏移参数,否则你的for循环会覆盖它。

您可以使用$ q.all()等待承诺列表:

var loopRequests = function(offset){
    return $http.get($scope.baseUrl, {
        params: {
          offset: offset,
          limit: 100,
          ts: $scope.timeStamp,
          apikey: $scope.publicKey,
          hash: $scope.hash
        }});
}

var promises = [];

for(var i = 0; i < 2; i++){
    $scope.offsetParam += 100;
    promises.push(loopRequests($scope.offsetParam));
}

$q.all(promises).then(results => console.log(results))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM