gpt4 book ai didi

java - 只要主要可观察值未发出任何值,就使用辅助/备用可观察值

转载 作者:行者123 更新时间:2023-12-02 02:44:04 26 4
gpt4 key购买 nike

以下是我想要实现的目标:

|--------------------A-A-A-A-A-A| primary (behavior subject)
|-B-B-B-B-B-B-B-B-B-B-B-B-B-B-B-| secondary (flowable)
|-B-B-B-B-B-B-B-B-B-BA-A-A-A-A-A| result (flowable)

基本上,我正在等待用户输入(通过主要可观察的),但如果用户尚未输入任何内容,我想提供系统生成的值。一旦收到用户输入,辅助可观察量将不再使用。

我研究了 switchIfEmptycombineLatest 但它们不符合我的需求,因为:

  1. switchIfEmpty 仅在主要可观察信号 onComplete 时有效。
  2. combineLatest 仅当两个可观察量都发出值时才有效

有什么办法可以做到这一点吗?

最佳答案

我不确定这是否是最简单或最优雅的方法,但这可行:

const a = Observable.interval(5000);
const b = Observable.interval(1000);

const sharedA = a.shareReplay(1);

const result = b.takeUntil(sharedA).concat(sharedA);

Demo

另一种也许简单的方法是

const sharedA = a.share();
const result = b.takeUntil(sharedA).merge(sharedA);

Demo

关于java - 只要主要可观察值未发出任何值,就使用辅助/备用可观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44933668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com