问题描述
我是 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();
}
);
}
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;
}