Angular 6 можно подписаться на подписку
Я не совсем понимаю, как правильно обращаться с наблюдаемым. Так что у меня проблема с моим кодом.
В сервисе у меня есть два метода:
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 как наблюдаемый? А подписаться в карауле?
1 ответ
Решение
Я думаю, что это должно быть что-то вроде этого.
Сервис аутентификации:
import { map } from "rxjs/operators";
isAuthenticated(){
return this.verify().pipe(map(response => response));
}
охрана:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot {
return this.auth.isAuthenticated();
}