Tôi đang viết một dịch vụ Angular.js để lấy một số nguồn cấp dữ liệu JSON
. Ban đầu, dịch vụ không biết/có bao nhiêu tài nguyên để yêu cầu; chúng phụ thuộc vào các id được trả về bởi một yêu cầu khác.Javascript Góc: làm thế nào để chuỗi số lượng không rõ các lời hứa
Tôi đang gặp phải sự đau đầu khi yêu cầu dịch vụ $http
cùng nhau. Có một mô hình thường được sử dụng để làm điều này?
Tôi đã thử kỹ thuật Array.reduce
được đề xuất trên một chuỗi khác nhưng đã gặp sự cố khi đồng bộ hóa id và dữ liệu được yêu cầu.
Đây là những gì tôi có cho đến nay. Có ai có bất cứ đề nghị?
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);
}
});
}
}
}
});
Thankyou.
Bạn có thực sự cần để nạp mỗi tài nguyên lần lượt? Nếu không, bạn có thể không chỉ bắn ra nhiều yêu cầu và sau đó chờ đợi cho tất cả các lời hứa sẽ được giải quyết? – codemonkey
Bạn có cần chúng thực hiện tuần tự hoặc chúng có thể chạy song song không? –