вызов в службу не выполняется - PullRequest
0 голосов
/ 21 февраля 2020

в ngOnInit, я вызываю сервис для получения токена, но он не работает, похоже, что эта часть кода пропущена, она не отображается в сетевых запросах, сервис работает, потому что я использую его в другой компонент позже, но мне нужно использовать его оттуда, этот файл - app.component.ts

//imports
export class AppComponent implements OnDestroy {
  title = 'cor4edu-fe';
  menu: NbMenuItem[];
  alive: boolean = true;

  constructor(private sidebarService: NbSidebarService,
              private appMenu: AppMenu, 
              public auth: AuthService) {}

  ngOnInit(){
    this.auth.getTokenSilently$().subscribe((token) => {
      console.log(token);
      localStorage.setItem("Token", token);
    })
    this.myFuncion();
    this.initMenu();
  }

  getToken() {
    return new Promise((resolve) => {
    this.auth.getTokenSilently$().subscribe(token => resolve(token));
    });
    }
    async myFuncion() {
    const token = await this.getToken();
    console.log(token);
    }
  toggle() {
    this.sidebarService.toggle(true);
    return false;
  }
  initMenu() {
    const token= localStorage.getItem("Token");
    const tokenPayload = decode(token);
    const permissions=tokenPayload['permissions'];

    this.appMenu.getMenu()
      .pipe(takeWhile(() => this.alive))
      .subscribe(menu => {
        console.log(localStorage.getItem("Token"));
        const exist = (menu, permissions) => menu.filter(el1=>permissions.some(el2=> "/"+el2.split(":")[1]==el1.link));
        const menun=exist(menu, permissions);

        if(this.auth.isAuthenticated()){
          this.menu = menun;
        }else{
          this.menu=[
            {
              title: 'Dashboard',
              icon: 'home-outline',
              link: '/',
              home: true,
              children: undefined,
            }
          ]
        }
      });
  }
  ngOnDestroy(): void {
    this.alive = false;
  }
}

1 Ответ

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

Ваш компонент не реализует интерфейс OnInit, поэтому ngOnInit вызываться не будет.

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