Я написал route guard
, как показано ниже.Но в операторе else
, где это никогда не возвращает результат.Но это имеет результат.И никаких ошибок тоже.this.hotelSettingsService.get().pipe(map(res => {
if (res) {
Это работает, если я удаляю этот from(this.localStorageService.get(LocalStorage.SCROLL_VIEW_HOLDER)).pipe(map(path
раздел.
Я думаю, что я сделал что-то в корне неправильно.Любая подсказка?
Видео об этом поведении: Видео
canActivate(): Observable<boolean> {
return from(this.localStorageService.get(LocalStorage.SCROLL_VIEW_HOLDER)).pipe(map(path => {
if (path) {
this.router.navigate(path);
return true;
} else {
this.hotelSettingsService.get().pipe(map(res => {
if (res) { // not come to here
this.router.navigate([this.getLandingPage(environment.hotelName)]);
return true;
}
}), catchError((err) => {
return of(false);
}));
}
}), catchError((err) => {
return of(false);
}));
}
Когда я ставлю return
:
![enter image description here](https://i.stack.imgur.com/hb1rq.png)
Работает нормально:
canActivate(): Observable<boolean> {
return this.hotelSettingsService.get().pipe(map(res => {
if (res) {
this.router.navigate([this.getLandingPage(environment.hotelName)]);
return true;
}
}), catchError((err) => {
return of(false);
}));
}
}