angular - Console.Log no se ejecuta cuando está dentro del operador RXJS Tap
Tengo los siguientes observables:
this.authenticationService.isSignedIn() -> Observable<Boolean>
this.user$ -> Observable<UserModel>
Necesito verificar una condición basada en ambos, así que intenté:
zip(this.authenticationService.isSignedIn(), this.user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) => isSignedIn && user.claims))
);
Debido a que estoy obteniendo un resultado inesperado, intenté revisar las cosas usando:
zip(this.authenticationService.isSignedIn(), this.user$).pipe(
tap(([isSignedIn, user]: [boolean, UserModel]) => {
console.log(isSignedIn);
console.log(user);
})
);
Pero los dos console.log no se ejecutan. ¿Qué me está faltando?
Respuesta #1
podrías estar perdiendo una suscripción. Todas las cosas de rxjs son perezosas y no se ejecutarán hasta que se haga una suscripción. si no necesitas manejar el resultado de otra manera excepto por tu operador tap, simplemente agrega .subscribe() al final
zip(...).pipe(
tap(...)
).subscribe();
