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();
}
Другие вопросы по тегам