Итак, я пытался решить эту проблему, используя async/await. Но я не могу этого сделать, может быть из-за отсутствия знаний в angular. Мне нужно получить доступ к значениям ответа, назначенным в async fetchData() в компоненте
Значения по умолчанию, назначенные сотруднику, — ВСЕ.
асинхронная функция в компоненте:
async fetchData(empId:string, empUrl:string) {
this.message = "Fetching..";
this.resp = await this.http
.get<any>(empUrl+empId)
.toPromise();
this.message = "Fetched";
}
вызов функции: -
getEmployeeById(empId:string, empUrl:string){
console.log("Get employee by empId....");
console.log("Before calling Employee API Call:");
for (var obj of this.empResp) {
console.log("empId : " +obj.empId);
console.log("empName : " +obj.empName);
}
console.log("************calling asynch call");
this.fetchData(empId, empUrl);
console.log("************back");
console.log("After calling Employee API Call:");
for (var obj of this.empResp) {
console.log("empId : " +obj.empId);
console.log("empName : " +obj.empName); }
}
к новым значениям сотрудников я применяю фильтры, но не могу получить значения из асинхронного вызова.
Консольный вывод: -
app.component.ts:65 Get employee by empId....
app.component.ts:66 Before calling employee API Call:
app.component.ts:68 empId : ALL
app.component.ts:70 empName : ALL
app.component.ts:72 ************calling asynch call
app.component.ts:74 ************back
app.component.ts:76 After calling employee Archive API Call:
app.component.ts:78 empId : ALL
app.component.ts:80 empName : ALL
app.component.ts:61 (3) [{…}, {…}, {…}]0: {empId: "123", empName: "XYZ"}1: {empId: "324", empName: "ABC"}length: 2__proto__: Array(0)
поэтому после этого прогона я хочу, чтобы сотрудники оценивали, как показано в ответе.
Пожалуйста, предложите.