1

angular 10 コンストラクターの oidc-client からの promise の解決に時間がかかりすぎているため、コンストラクターがユーザー変数に値を配置する前に isLoggedIn 関数が呼び出されています。

これは私のコードです:

import { UserManager, UserManagerSettings, User } from 'oidc-client';

export class AuthService {
  private user: User = null;
  private manager = new UserManager(getClientSettings());
  privatecachedRequests: Array<HttpRequest<any>> = [];

  constructor() {
    this.manager.getUser().then(user => {
      this.user = user;
    });
  }
  isLoggedIn(): boolean {
    return this.user != null && !this.user.expired; <= this.user is null because the constructor did not finished the async part
  }

このコードはAngular 8で機能していました

isLoggedIn メソッド内で getUser() 関数を呼び出すと機能しましたが、コンストラクターからこれを使用したいと思います

4

1 に答える 1