我有一个方法返回一个返回1或2个项目的short observable,然后完成。
我希望有一个可以继续运行的observable,当我调用一个方法时,会创建short observable并将其合并到运行时间更长的observable中。
有没有办法用可观察的运算符执行此操作?或者我应该只使用主题吗?
答案 0 :(得分:3)
当你提出问题时,没有办法使用主题,特别是因为你需要一个方法调用来触发现有流上的事件。
但是你可以将主题的使用限制在最低限度,这就是这个方法调用:
Subject<Unit> trigger;
void RefreshMethod() { trigger.OnNext(Unit.Default); }
IObservable<Item> GetLongObservable() {
return trigger.SelectMany(_ => GetShortObservable());
}
理想情况下,根据调用RefreshMethod
的位置,您可以尝试进一步传播Rx的使用,并通过其后面的实际事件替换主题。