私は約束のループをすることができません。AngularJS:ループで約束
プロバイダのリストを取得するためにサービスコールを行い、プロバイダごとに別のサービスコールを呼び出して顧客を取得します。
プロバイダには1人以上の顧客がいます。したがって、顧客の最終的なリストが装飾され表示される。他のフォーマットでは
私が達成しようとしています:私は次のコード書かれている
*serviceA.getProvider(){
foreach(providers){
foreach(provider.customerID){
serviceB.getCustomer(customerId)
}
}
}
.then(
foreach(Customer){
updateTheCustomer;
addUpdatedCustomerToAList
}
displayUpdatedCustomreList();
)*
は、それはあなたがそれの内側にreturn
を使用するときに停止しない
doTheJob(model: Object) {
let A = [];
let B = [];
let fetchP = function(obj) {
obj.Service1.fetchAllP().then(function (response) {
let P = cloneDeep(response.data);
_.forEach(P, function(prov) {
_.forEach(prov.CIds, function(Id) {
A.push(Id);
});
});
_.forEach(A, function(CId) {
return obj.Service2.getById(CId);//what works is if this statement was: return obj.Service2.getById(A[0]);
//So, clearly, returning promise inside loop isn't working
});
})
.then(function(response) {
B.push(response.data); //This response is undefined
angular.forEach(B, function (value) {
obj.updateAdr(value)
});
obj.dispay(B);
});
};
fetchP(this);
}
カリムのようなものを望んでいた、あなたはスターです!あなたのソリューションは全く驚異的に機能しました!ありがとう – TPats
喜んで助けました;) – Karim
@TPats答えを正しいとマークしてください:) – Karim