переменная неопределенная Угловая

#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