RxJS 使用异步管道处理成功

RxJS handling success with async pipe

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

我在 Angular 6

中有一个后端调用和模板

在此后端调用之后,我想将结果切换到 dataUpdated$ observable,它将在模板中显示如下内容:

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

然后我想在同一流上设置计时器,假设 2 秒后我想再次更新该可观察对象,以便它在模板中消失。

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

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

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

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