Angularjs 在Angular js中使用for循环进行同步http get调用
我需要处理这样一种情况:我需要一个循环来多次执行HTTPGET调用。这是我的密码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
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
})