angular - Observable .do() 运算符的用例 (rxjs)

标签 angular firebase rxjs observable angularfire2

上下文:

我正在构建一个 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/

相关文章:

ios - iOS 10 上未收到 Firebase 通知

angular - 带 Angular 路由器的 RXJS - 'mergeMap' 不是函数

angular - 可以从异步管道调用类方法吗?

javascript - 在 redux-observable 中使用 rxjs 示例来监听其他操作

Angular 2 srcdoc polyfill 不起作用

javascript - 如何在 Angular 应用程序中调用 APP_INITIALIZER

Angular2 - 在检查时将检查值推送到数组

javascript - 如何在 firebase 数据库中添加 indexOn userId

ios - Firebase 动态深度链接在安装后到达 nil

javascript - ngFor 使用唯一键进行迭代