我是Angular中的新手,我需要实现一个返回true/false的函数,我将在canActivate中使用return,但是这个函数使用http.get的api,所以就像通信是异步的一样,这个函数总是返回FALSE ,因为http.get还在进行中.
我的班主任:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
let url: string = state.url;
if (this.loginService.isLoggedIn()) {
return true;
}
this.loginService.redirectUrl = url;
this.router.navigate(['login']);
return false;
}
Run Code Online (Sandbox Code Playgroud)
和函数isLoggedIn()
isLoggedIn() {
let logged: boolean = false;
this.http.get('api/values', this.httpService.headers())
.map((res: Response) => {
logged = res.json();
});
return logged;
}
Run Code Online (Sandbox Code Playgroud)
我读了很多问题,但我找不到答案.