我有這樣的情況下,我會被人打API之一,這裏是我想出了:角承諾鏈自動化
GridServices.getProjects(data[1].status_id, vm.myProject)
.then(function(data){
vm.myData1 = data;
vm.counter[1] = data.length;
$scope.statusTypes[1].projects = vm.myData;
}).then(function(){
GridServices.getProjects(data[2].status_id, vm.myProject)
.then(function(data){
vm.myData2 = data;
vm.counter[2] = data.length;
$scope.statusTypes[2].projects = vm.myData;
})
}).then(function(){
GridServices.getProjects(data[3].status_id, vm.myProject)
.then(function(data){
vm.myData3 = data;
vm.counter[3] = data.length;
$scope.statusTypes[3].projects = vm.myData;
})
}).then(function(){
GridServices.getProjects(data[4].status_id, vm.myProject)
.then(function(data){
vm.myData4 = data;
vm.counter[4] = data.length;
$scope.statusTypes[4].projects = vm.myData;
})
}).then(function(){
GridServices.getProjects(data[5].status_id, vm.myProject)
.then(function(data){
vm.myData5 = data;
vm.counter[5] = data.length;
$scope.statusTypes[5].projects = vm.myData;
})
}).then(function(){
GridServices.getProjects(data[8].status_id, vm.myProject)
.then(function(data){
vm.myData8 = data;
vm.counter[8] = data.length;
$scope.statusTypes[8].projects = vm.myData;
})
}).catch(function(err, msg){
console.log(err);
});
});
基本上,它由一個擊中API之一,但它還挺手冊,有沒有辦法你可以在循環中設置它所以它自動鏈查詢一個接一個,(承諾所有是不是我在這裏尋找,因爲我需要查詢進來,直到一個完成)
感謝您的任何想法或建議,我正在學習解決這類問題的更好方法。
乾杯
所有這些承諾是相互獨立的,那麼爲什麼'$ q.all'不適合? –
他們爲什麼需要連續運行?爲什麼不平行? – Phil
$ q.all做所有的查詢和回調作爲整體,我需要調用一個完成然後去下一個。 – Bruce