#angular #typescript
Вопрос:
У меня есть этот проект в Angular, и я пытаюсь восстановить информацию из функции в другой функции. Это мой код:
ngOnInit() {
this.getSessionUser();
}
private getSessionUser() {
this.authService.auth$
.subscribe(user => {
this.user = user;
this.getForms();
});
}
filterByStatus(estado: EstadoRegistro | null) {
if (estado){
this.dataSource.data = this.data.filter(item => item?.lastLog?.ID_ESTADO === estado);
} else {
this.dataSource.data = this.data;
}
}
getLogs(formId: string) {
this.supervisorService.getLogs(formId).subscribe((logs) => {
this.dataSource.data = logs;
console.log("historic length: " logs.length);
this.oneLog = logs.length
console.log("onelog: " this.oneLog.toString())
});
}
getForms() {
this.supervisorService.getForms()
.subscribe((forms) => {
this.dataSource.data = forms;
this.data = forms;
this.getLogs(forms[0].ID_FORM)
console.log("forms: " this.oneLog);
});
}
Мне нужно поработать с историческим журналом, чтобы проверить статус в нем для каждой отдельной записи. Но если я попытаюсь восстановить историческую информацию, чтобы я мог передать то, что мне нужно, каждому отдельному объекту формы, появится неопределенная метка, как вы можете видеть здесь:
forms: undefined
historic length: 5
onelog: 5
Что я делаю не так?
Комментарии:
1.
this.supervisorService.getLogs(formId)
является асинхронным, поэтомуconsole.log("forms: " this.oneLog);
будет печататься доsubscribe((logs) => {
завершения и установкиthis.oneLog
2. Также не делайте
subscribe
subscribe
этого , это анти-шаблон в RxJS