我正在写一个Angular.js服务来提取一些JSONFeed.最初,该服务不知道要请求的资源数量/数量; 它们依赖于另一个请求返回的ID.
我很头疼将$http服务请求链接在一起.有没有常用的模式来做到这一点?
我已尝试Array.reduce在另一个线程上建议的技术,但在同步ID和请求的数据时遇到问题.
这就是我到目前为止所拥有的.有没有人有什么建议?
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);
}
});
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢.