在我的函数中,我在for循环中调用嵌套的api,我想在我的for循环api调用完成时设置一个变量。我如何在角度2中实现这一点。
this.cMSService.listServiceByProductAndParentService(productId, parentServiceId).subscribe(res => {
//console.log("Previous Services are",res);
for (let j = 0; j < res.length; j++) {
if (res[j].has_children) {
this.cMSService.listServiceByProductAndParentService(productId, res[j].id).subscribe(childService => {
res = res.concat(childService);
console.log(childService);
this.cMSService.listServiceByProduct(productId).subscribe(prodService => {
//console.log("Product Service response is", prodService);
for (let i = 0; i < res.length; i++) {
let servicePrices = prodService.find(tempProdService => tempProdService.id == res[i].id);
if(servicePrices){
res[i].prices = servicePrices.prices;
}
}
//console.log("After Service Response is", res);
})
})
}
else {
this.cMSService.listServiceByProduct(productId).subscribe(prodService => {
//console.log("Product Service response is", prodService);
for (let i = 0; i < res.length; i++) {
let servicePrices = prodService.find(tempProdService => tempProdService.id == res[i].id);
//console.log("Services Price are ", servicePrices, res[i].id);
if (servicePrices) {
res[i].prices = servicePrices.prices;
}
}
//console.log("After Service Response is", res);
})
}
}
this.services = res;
console.log("Response is",res);
我想在api调用结束时设置变量,第二件事就是当我更新 res 长度时。我的for循环仍在迭代到之前的值。