Angularjs 在Angular js中使用for循环进行同步http get调用

Angularjs 在Angular js中使用for循环进行同步http get调用,angularjs,ionic-framework,Angularjs,Ionic Framework,我需要处理这样一种情况:我需要一个循环来多次执行HTTPGET调用。这是我的密码 for(i = 1; i <= 5; i++){ console.log(i); var req = { method: 'GET', timeout: 30000, url: url params: {page_id: i} }; $http(req).success(function(da

我需要处理这样一种情况:我需要一个循环来多次执行HTTPGET调用。这是我的密码

   for(i = 1; i <= 5; i++){
    console.log(i);
    var req = {
         method: 'GET',
         timeout: 30000,
         url: url
         params: {page_id: i}
      };
      $http(req).success(function(data, status, headers, config) {
          console.log(data);
      }).error(function(data, status, headers, config) {
          console.log('error');
      });      
   }

我需要它来处理,但不能按顺序获取值。

在循环中使用函数调用,示例如下:

function httpRequestFn(req) {
    $http(req).success(function(data, status, headers, config) {
        console.log(data);
    }).error(function(data, status, headers, config) {
        console.log('error');
    });
}

for(i = 1; i <= 5; i++){
    console.log(i);
    var req = {
        method: 'GET',
        timeout: 30000,
        url: url
        params: {page_id: i}
    };
    httpRequestFn(req);
}

如果你想一次发送多个请求,那么我建议使用$q.all

确保将$q注入控制器

var httpArr = [];
for (i = 1; i <= 5; i++) {
    console.log(i);
    var req = {
        method: 'GET',
        timeout: 30000,
        url: url
        params: {
            page_id: i
        }
    };
    httpArr.push($http(req))
}
$q.all(httpArr).then(function(response) {
    console.log(response[0].data) // 1st request response 
    console.log(response[1].data) // 2nd request response 
    console.log(response[2].data) // 3rd request response 
}).catch(function(response) {
    //error resonse
})