Angular 9: объект становится неопределенным в ngOinit даже после назначения - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь получить доступ к объекту, который назначен функцией в ngOnInit, но консольный журнал показывает его неопределенным, тогда как та же самая переменная доступна в блоке подписки LoadSelCompanies:

export class dealComponent implements OnInit {
  selfcompanies;
  self;
  dealForm: FormGroup;
  constructor(private userService: UserService) { }
  ngOnInit() {
    this.AddControls();
    this.LoadSelCompanies();
    console.log(this.selfcompanies);
  }

  LoadSelCompanies() {
    this.userService.LoadCompanyInfo().subscribe(data => {
      this.selfcompanies = data;
      console.log(data);
      console.log(this.selfcompanies);
    });
  }

Я ничего не понимаю Пожалуйста, помогите.

1 Ответ

1 голос
/ 28 февраля 2020

Это классическая c проблема состояния гонки.

LoadCompanyInfo () возвращает наблюдаемую информацию, которая является асинхронной, и поэтому

console.log(this.selfcompanies);

происходит до назначения.

this.selfcompanies = data;
...