【发布时间】:2020-07-23 09:06:27
【问题描述】:
我正在使用循环重复调用 API 并将相应的响应打印到对象中,但在我的第二次订阅完成之前,循环继续前进并执行下一行代码。如何在循环继续之前适当地等待订阅结束?
我希望在第二个循环开始之前完全填充数组 Phone。
getData() {
this.finaldata=[];
this.phone=[];
this.api.getSingleValue('/API/shift/app_name/' + this.application_name).subscribe((Response: any) => {
if (Array.isArray(Response) && Response.length > 0) {
for(let i=0; i<Response.length; i++){
this.api.getSingleValue('/API/person/' + Response[i].qlid).subscribe((res: any) => {
this.phone.push(res.contactNumber)
});
}
console.log(this.phone)
for(let i=0; i<Response.length; i++){
this.object={
"qlid": Response[i].qlid,
"entry_Type": Response[i].entry_Type,
"app_Name": Response[i].app_Name,
"shift_Start_Time": Response[i].shift_Start_Time,
"shift_End_Time":Response[i].shift_End_Time,
"startDate": Response[i].startDate,
"endDate": Response[i].endDate,
"reason": Response[i].reason,
"phone_no": this.phone[i]
}
this.finaldata.push(this.object);
}
console.log(this.finaldata)
this.rowData = this.finaldata;
}
else{
this.rowData=[];
alert('No Data To Display')
}
});
}
}
【问题讨论】:
-
尝试解决这个问题 - stackoverflow.com/questions/44752086/…
标签: angular typescript