Angular Resolver con Observables relacionados usando withLatest [duplicate]
Oct 28 2020
El segundo observable de mi resolutor tiene que usar el resultado del primer observable. No pude averiguar cómo pasar esos datos al segundo observable:
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)
)
);
}
¡Gracias por tu ayuda!
Respuestas
2 MichaelD Oct 28 2020 at 20:01
Debería utilizar cualquiera de los operadores de mapeo de orden superior RxJS en los casos en que un observable dependa de la emisión de otro observable.
Ilustración con 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))
);
}