Надпись в canload guard Angular2 + - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь использовать combLatest в canload guard, но я получаю эту ошибку: Тип В 'Subscription' отсутствуют следующие свойства из типа 'Observable': _isScalar, source, operator, lift и еще 6.

мой код выглядит следующим образом:

canLoad(route: Route): Observable<boolean> {
        return combineLatest(this.router.events, this.resources$, this.role$)
            .subscribe(([nav, res, role]) => {
              // some logic
                return false;
            })
 }

Я хочу прослушать событие маршрута и проверить разрешения по слагу маршрута. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 14 апреля 2020

Вам не нужно subscribe просто возвращать combineLatest.

Метод, кроме Observable, но вы возвращаете Subscription.

canLoad(route: Route): Observable<boolean> {
        return combineLatest(this.router.events, this.resources$, this.role$)
               .pipe(
                   // take the first value emitted and complete
                   first()
                   map((value) => {
                       if(value) {
                           return true;
                       }
                       return false;
                   })
               )
}
...