我不太了解如何正确处理观察。所以我的代码有问题。
在使用中我有两种方法:
verify(): Observable<any> {
return this.http.post(some_url);
}
// and
isAuthenticated(){
this.verify().subscribe(
data => {return true;},
error => {return false;})
}
在守卫中我调用isAuthenticated方法,我需要从中获取布尔值。
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.auth.isAuthenticated() //?
}
如何正确处理?我应该返回isAuthenticated as Observable吗?订阅后卫?
答案 0 :(得分:3)
我认为它应该是这样的。
验证服务:
import { map } from "rxjs/operators";
isAuthenticated(){
return this.verify().pipe(map(response => response));
}
后卫:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot {
return this.auth.isAuthenticated();
}