Строка отображается нормально в html, но становится неопределенной в консоли при использовании console.log - PullRequest
1 голос
/ 07 января 2020

Я столкнулся с проблемой, когда я могу получить строку и отобразить ее на странице html, но я не могу использовать ее в качестве строки в моей машинописи. Вот мои коды.

TypeScript:

user: User = new User();
  constructor(private authService: AuthService, private router: Router) { }

  ngOnInit() {
    this.user = this.authService.getCurrentUser();
    console.log(this.user.email)
  }

HTML:

<ion-item>
       <ion-label>Email: {{user.email}}</ion-label>
</ion-item>

Адрес электронной почты будет отображаться правильно в html, но при использовании console.log для отображения электронного письма в консоли браузера, оно не определено.

Приносим извинения за доставленные неудобства и заранее благодарим.

Ответы [ 2 ]

2 голосов
/ 07 января 2020

this.authService.getCurrentUser() - это асинхронный вызов, что означает, что он занимает некоторое время, и следующие строки выполняются первыми. Следовательно, вы получаете неопределенное значение в console.log()

. Чтобы утешить значение, вы можете попробовать вот так:

ngOnInit() {
    this.authService.getCurrentUser().subscribe(res => {
         this.user = res;
         console.log(this.user.email)
    }    
}
0 голосов
/ 07 января 2020

это может быть потому, что this.authService.getCurrentUser () является асинхронным c запросом, к тому времени, когда ваш сервисный вызов разрешен, компилятор перемещается на следующую строку.

Вы входите в html потому, что после его разрешения представление обновляется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...