RxJS 拥有可观察的和下一个不可言说的最新价值

RxJS hold observable and next latest value on untold

我有两个 observable,一个是保存数据的 data observable,还有一个 locker observable。当 locker 值的值为 'lock' 时,可观察的数据应该将他的数据发送给他的订阅者。当我们解锁可观察数据时,它应该将最后一个下一个值发送给订阅者。

我附上了一张图表,显示了我想要的内容。当 B 源为 L(锁定)时,它应该保留该值,当 B 源为 U 时,它应该传递 A 值,并且 return 也是更改时的最后一个已知值。

希望有人能帮我找到合适的操作员。

看起来你可以用 combineLatest():

combineLatest([lock$, data$])
  .pipe(
    switchMap(([lock, data]) => {
      if (lock === 'L') {
        return EMPTY;
      }
      // When `lock` changes to unlocked then `data` will already have the most recent value from `data$`.
      return of(data);
    }),
   ),