Я действительно новичок в этом, и у меня проблемы с манипулированием данными в интерфейсе приложения, которое я разрабатываю.
У меня есть две функции, называемые «getTipoEtapas ()» и «getEtapasporTransfo», которые используют два сервиса для возврата данных бэкэнда и назначения их переменным.
У меня есть третьи функции, которые инициировать нажатие кнопки в файле HTML. Этот вызывает четвертую функцию, которая делает некоторые другие вещи.
Проблема в том, что в четвертой функции я получаю значения emptys (data5, data6, data7). Я думал, что это была асинхронная проблема, поэтому я решил начать использовать обещания. Но я повторяю это, я действительно новый разработчик, поэтому я попытался решить его, и не получилось.
Извините за мой плохой Engli sh.
это код:
getTipoEtapas(){
this.tipoEtapaService.getTipoEtapas().subscribe(tipoEtapa=>{
this.data6=tipoEtapa;
})
}
getEtapasporTransfo(id:number){
this.etapaService.getEtapasPorIdTransfo(id).subscribe(etapa=>{
this.data5=etapa;
})
}
onRowClicked(row){
this.data2=row;
const promesa=new Promise((resolve,rejected)=>{
this.getEtapasporTransfo(this.data2.idTransfo)
this.getTipoEtapas();
resolve('Resolved');
});
promesa.then(()=>{
this.asignarEtapaTransfo();
})
}
asignarEtapaTransfo(){
console.log(this.data5);
console.log(this.data6);
console.log(this.data7);
this.data5.forEach((e,i)=>{
this.data6.forEach((e,j)=>{
if(this.data5[i].idTipoEtapa==this.data6[j].idTipoEtapa)
{
this.data7[i].nombreEtapa=this.data6[j].nombreEtapa;
}
});
this.data7[i].dateIni=this.data5[i].dateIni;
this.data7[i].dateFin=this.data5[i].dateFin;
this.data7[i].tiempoParc=this.data5[i].tiempoParc;
this.data7[i].tiempoFin=this.data5[i].tiempoFin;
});
}