亲爱的Stackoverflow的成员,
我需要异步调用3组2个链式$ http.get请求。 对于每组链式请求,我需要获取属性的id然后执行第二个$ http.get请求以从id获取数据。 完成所有组请求后,我需要解析所有获取的数据。 以下是我开发的功能。
function initChartData(starttime, endtime) {
var deferred = $q.defer();
var attrURLs = [baseURL + '|Attribute1',
baseURL + '|Attribute2',
baseURL + '|Attribute3'
];
var promises = [];
var attrNames = [];
var dateFormat = 'dd-MMM-yyyy HH:mm';
angular.forEach(attrURLs, function (url) {
promises.push(
// 1. First $http.get request: Get the ID of the attribute
$http.get(url)
.then(function (responses) {
// 2. Second $http.get request: Get the data from the ID
var data = responses.data;
return $http.get(data.Links.GetData + '?starttime=' + $filter('date')(starttime, dateFormat) + '&endtime=' + sEndTime);
})
);
});
$q.all(promises)
.then(function (responses) {
var data = [];
for (let i = 0; i < responses.length; i++) {
data.push(responses[i].data.data });
}
deferred.resolve(data);
});
return deferred.promise;
}
您如何看待我的功能? 2个链式$ http.get请求中的3组是异步调用的吗?或者,当所有第一个$ http.get请求完成后,是否调用了第二个$ http.get请求?
谢谢, 最好的祝福, 艾蒂安