【问题标题】:RxJS handling success with async pipeRxJS 使用异步管道处理成功
【发布时间】:2023-03-08 16:10:01
【问题描述】:

所以基本上我想做以下事情:

我在 Angular 6 中有一个后端调用和模板

在这个后端调用之后,我想将结果 switchMap 到 dataUpdated$ observable,这将在模板中显示如下内容:

<h1 *ngIf="dataUpdated$ | async">Very Good!</h1>

然后我想在同一个流上设置计时器,让我们说 2 秒后我想再次更新该 observable,使其在模板中消失。

我不想使用订阅方法,我已经在代码中订阅了。

我想将代码更新为一个流而不中断或需要手动取消订阅

【问题讨论】:

标签: angular timer rxjs observable emit


【解决方案1】:

async 管道应该只保留一个订阅,因此您可以使用 switchMap 重新发送原始值,并在 2 秒后发出 false 应该隐藏消息。

dataUpdated$ = source.pipe(
  switchMap(v => merge(
    of(v),
    of(false).pipe(delay(2000)),
  )),
);

【讨论】:

  • 我喜欢这个答案,但我想在of(v) 完成后启动计时器,PS 我设法做到了
猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 2019-04-12
  • 2020-09-26
  • 2016-11-08
  • 1970-01-01
相关资源
最近更新 更多