我在编写一个Angular.js服务,用于拉取一些JSON数据源。最初,服务不知道要请求哪些/多少资源; 它们依赖于另一个请求返回的ids。
我正在头疼如何链接$http服务请求。有没有常用的模式来做到这一点?
我尝试了另一个线程上建议的Array.reduce技术,但是在同步ids和请求的数据时遇到了问题。
这是我目前的代码。有人有什么建议吗?
aService.factory('dummy', function($http){
// Dummy resources.
var resources = [
'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'
];
return {
data: function(callback){
var jquerySources = []
var promiseChain = $http({method: 'GET', url: resources[0]});
var l = resources.length
for (var i = 1; i < l; i++ ){
promiseChain.then(function(data){
jquerySources.push({
url: resources[i],
source: data
});
promise_chain = $http({method: 'GET', url: resources[i]});
if (i === l){
return callback(jquerySources);
}
});
}
}
}
});
谢谢。