Resolvedor angular com observáveis relacionados usando withLatest [duplicado]
Oct 28 2020
O segundo observável do meu resolvedor deve usar o resultado do primeiro observável. Não consegui descobrir como passar esses dados para o segundo observável:
resolve(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<[Project[], Owner]> {
const currentEmail = this.CurrentUserEmail();
return this.searchService.genericSearchApi('/api/searchproject', ...[//I need to pass the user here.]]).pipe(
withLatestFrom(
this.userService.getUserByEmail(currentEmail)
)
);
}
Obrigado pela ajuda!
Respostas
2 MichaelD Oct 28 2020 at 20:01
Você precisaria usar qualquer um dos operadores de mapeamento de ordem superior RxJS nos casos em que um observável depende da emissão de outro observável.
Ilustração usando switchMapoperador
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<[Project[], Owner]> {
const currentEmail = this.CurrentUserEmail();
return this.userService.getUserByEmail(currentEmail).pipe(
switchMap(user => this.searchService.genericSearchApi('/api/searchproject', user))
);
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?