2017-04-10 19 views
0

我需要一个情况来处理,我需要一个循环执行多次http获取调用。这里是我的代码同步http获取调用与循环在Angular js离子

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

我需要这个来处理,但没有得到值的顺序。

回答

1

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

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); 
} 
0
,如果你想发送多个请求的一个镜头,然后我会建议使用 $q.all

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

确保注入

$q至控制器