Проблема в том, что у меня есть имя пользователя, которое я хочу отобразить, но не могу получить данные вне обещания.
Я создал user.service.ts и включил его в app.module.ts в качестве поставщика.Затем в app.component.ts я установил пользователя равным возвращенным данным, но он не работает.Почему невозможно обновить глобальную переменную внутри обещания, как это?
user.service.ts
import { Injectable } from '@angular/core';
import { AuthGuardService } from './auth-guard.service';
@Injectable({
providedIn: 'root'
})
export class UserService {
public user: string;
constructor(private authService: AuthGuardService) {
this.authService.getAuthStatus().then(data => {
console.log(data.username)
this.user = data.username;
return this.user;
});
}
}
app.component.ts
import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd, Route } from '@angular/router';
import { AuthGuardService } from './services/auth-guard.service';
import { CookieService } from 'ngx-cookie';
import { Window } from 'selenium-webdriver';
import { UserService } from './services/user.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Fordringsadministration';
private previousUrl: string = undefined;
private currentUrl: string = undefined;
public user: string;
constructor(
private router: Router,
public userService: UserService,
private cookie: CookieService
) {
ngOnInit() {
this.user = this.userService.user;
console.log(this.user)
}
}
Ожидаемый результат должен быть sti-admin - текущий зарегистрированный пользователь.Но я получаю неопределенный ??Так что this.user не определен ..