Контекст:
Я создаю приложение angular 2 (с API Firebase). Я использую модуль AngularFire. Мне было интересно, как я могу смешивать метод canActivate с AngularFire auth Observable, и я нашел этот пост. Ответ заключается в том, чтобы метод canActivate возвращал значение Observable<boolean>:
canActivate(): Observable<boolean> {
return this.auth
.take(1)
.map((authState: FirebaseAuthState) => !!authState)
.do(authenticated => {
if (!authenticated) this.router.navigate(['/login']);
});
}
Это первый раз, когда я вижу оператор Observable do, и я не могу понять, что он на самом деле делает? Официальный док не помог мне, и я не нашел достойных примеров.
Вопрос:
Может ли кто-нибудь принести сюда несколько примеров использования .do()? И разница с .subscribe()?