从较短的可观察对象创建一个长 运行 可观察对象?
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 的使用,并用其背后的实际 事件 替换主题。
我有一个方法 returns 一个简短的可观察对象 returns 1 或 2 个项目,然后完成。
我想要一个持续 运行 的可观察对象,当我调用一个方法时,会创建较短的可观察对象并合并到较长的 运行 可观察对象中。
有没有办法使用可观察运算符来做到这一点?还是我应该只使用主题?
在您提出问题时,没有办法绕过主题的使用,特别是因为您需要一个方法调用来触发现有流上的事件。
但是你可以将subjects的使用限制在最低限度,也就是这个方法调用:
Subject<Unit> trigger;
void RefreshMethod() { trigger.OnNext(Unit.Default); }
IObservable<Item> GetLongObservable() {
return trigger.SelectMany(_ => GetShortObservable());
}
理想情况下,根据调用 RefreshMethod
的位置,您可以尝试进一步传播 Rx 的使用,并用其背后的实际 事件 替换主题。