我有一个方法,它返回一个简短的可观察对象,该对象返回1或2个项目,然后完成。
我希望有一个可观察的对象继续运行,当我调用一个方法时,将创建简短的可观察对象并将其合并到运行时间更长的可观察对象中。
有可观察的运算符可以做到这一点吗?还是应该只使用一个主题?
最佳答案
当您提出问题时,就无法使用主题,特别是因为您需要一种方法调用来触发现有流上的事件。
但是您可以将主题的使用限制为最少,这是此方法调用:
Subject<Unit> trigger;
void RefreshMethod() { trigger.OnNext(Unit.Default); }
IObservable<Item> GetLongObservable() {
return trigger.SelectMany(_ => GetShortObservable());
}
理想情况下,根据调用
RefreshMethod
的位置,您可以尝试进一步传播Rx的使用,并用其后面的实际事件替换主题。关于c# - 从较短的观测值创建长期运行的观测值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34793508/