angular - example - Caso de uso del operador observable.do()(rxjs)
rxjs pipe (1)
Contexto:
Estoy construyendo una aplicación angular 2 (con una API Firebase). Estoy usando el módulo AngularFire. Me preguntaba cómo puedo mezclar el método canActivate
con el AngularFire auth Observable, y encontré esta publicación . La respuesta es hacer que el método canActivate
devuelva un Observable<boolean>
:
canActivate(): Observable<boolean> {
return this.auth
.take(1)
.map((authState: FirebaseAuthState) => !!authState)
.do(authenticated => {
if (!authenticated) this.router.navigate([''/login'']);
});
}
Es la primera vez que veo al operador observable do
, y no puedo entender lo que realmente hace. El documento oficial no me ayudó, y no encontré ejemplos decentes.
Pregunta:
¿Puede alguien traer aquí algunos ejemplos de uso de .do()
? ¿Y la diferencia con .subscribe()
?
.do()
es ejecutar código para cada evento. Una diferencia con .map()
es que el valor de retorno de .do()
se ignora y no cambia el valor que recibe el suscriptor.