[英]Looping $http.get requests in AngularJS
我正在使用Marvel API,因为我正在构建一个角色展示,但Marvel将您在单个get请求中可以检索的结果数量限制为100。
我试图把它放在for循环中,但它不起作用。 我试图实现一个方法建议作为解决方案while
或for
循环使用$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;
}
这是我想要实现的目标:
任何帮助都将不胜感激。
//编辑:需要等待最后一个请求完成
我认为你需要传递偏移参数,否则你的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.