上下文:
我正在构建一个 Angular 2 应用程序(使用 Firebase API)。我正在使用 AngularFire 模块。我想知道如何混合 canActivate
使用 AngularFire auth Observable 的方法,我发现 this post .答案是制作 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()
的区别?
最佳答案
更新
现在是 pipe( tap(...), )
而不是 do()
原创
.do()
是对每个事件执行代码。与 .map()
的不同之处在于,.do()
的返回值会被忽略,并且不会更改订阅者收到的值。
关于angular - Observable .do() 运算符的用例 (rxjs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957381/