operator example angular firebase rxjs observable angularfire2

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.