微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

想要调用 authguard 服务中的服务方法

如何解决想要调用 authguard 服务中的服务方法

我是 angular 的新手,我只需要在 authguard 服务中调用一个服务方法。我只需要的服务功能如下。注意:不要改变服务功能

loadOrganizations() {
    this.getorganizations().subscribe(
      (results) => {
        const organizationList = [];
        if (results.organizations) {
          results.organizations.forEach((element) => {
            this.appendOrganization(element,organizationList);
            this.loadChildrenorganization(element.children,organizationList);
          });
        }
        this.organizations$.next(organizationList);
        this.organizations$.complete();
      },(error) => {
        this.organizations$.next([]);
        this.organizations$.complete();
      }
    );
  }

在我的 authguard ts 中调用方法如下。

canActivate(
    route: ActivatedRouteSnapshot,state: RouterStateSnapshot
  ): Promise<boolean> {
 
     this.appService.loadOrganizations().then((answer: boolean) => {
          return answer;
      });
  }

我在“Promise”和“then”中遇到了返回类型错误。有关如何在 authguard 服务中调用此服务方法的任何线索?

解决方法

感谢支持。我解决了

canActivate(
    next: ActivatedRouteSnapshot,state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
     this.appService.loadOrganizations();
     console.log("authuard is calling")
     return true;
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。