Je construis une application angular 2 (avec une API Firebase). J'utilise le module AngularFire. Je me demandais comment je pouvais mélanger la méthode canActivate
avec AngularFire. auth Observable, et j'ai trouvé cet article . La réponse consiste à faire en sorte que la méthode canActivate
renvoie un Observable<boolean>
:
canActivate(): Observable<boolean> {
return this.auth
.take(1)
.map((authState: FirebaseAuthState) => !!authState)
.do(authenticated => {
if (!authenticated) this.router.navigate(['/login']);
});
}
C'est la première fois que je vois l'opérateur Observable do
, et je ne comprends pas ce qu'il fait vraiment? Le doc officiel ne m'a pas aidé et je n'ai pas trouvé d'exemples décents.
Quelqu'un peut-il apporter ici quelques exemples d'utilisation de .do()
? Et différence avec .subscribe()
?
.do()
est d'exécuter du code pour chaque événement. Une différence par rapport à .map()
est que la valeur de retour de .do()
est ignorée et ne modifie pas la valeur que l'abonné reçoit.