从较短的可观察对象创建一个长 运行 可观察对象?

Creating a long running observable from shorter observables?

我有一个方法 returns 一个简短的可观察对象 returns 1 或 2 个项目,然后完成。

我想要一个持续 运行 的可观察对象,当我调用一个方法时,会创建较短的可观察对象并合并到较长的 运行 可观察对象中。

有没有办法使用可观察运算符来做到这一点?还是我应该只使用主题?

在您提出问题时,没有办法绕过主题的使用,特别是因为您需要一个方法调用来触发现有流上的事件。

但是你可以将subjects的使用限制在最低限度,也就是这个方法调用:

Subject<Unit> trigger;

void RefreshMethod() { trigger.OnNext(Unit.Default); }

IObservable<Item> GetLongObservable() {
    return trigger.SelectMany(_ => GetShortObservable());
}

理想情况下,根据调用 RefreshMethod 的位置,您可以尝试进一步传播 Rx 的使用,并用其背后的实际 事件 替换主题。