背景:
我正在构建一个使用Firebase API的Angular 2应用程序。 我正在使用AngularFire模块。 我想知道如何将canActivate
方法与AngularFire身份验证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()
的区别?
do
是否也可以实现相同的功能?你能给我一些例子吗?无论如何,感谢您的回复。 - soywodthis.auth
返回的可观察对象发出第一个值时,将调用router.navigate
。 - Günter Zöchbauersubscribe()
方法,否则可执行文件不会有任何作用,也不会调用do(...)
方法。 - Günter ZöchbauerRxJS
中,do
操作符是否仍然存在?我今天查看了文档,但没有找到它。如果已经删除,那么有没有替代这个操作符的方法? - Kiran Dash