Java 从不同的流中累积观察值以进行轮询
我试图从服务器调用中积累观察值,然后映射它们并进行另一个服务器调用Java 从不同的流中累积观察值以进行轮询,java,system.reactive,reactive-programming,rx-java,Java,System.reactive,Reactive Programming,Rx Java,我试图从服务器调用中积累观察值,然后映射它们并进行另一个服务器调用 private Observable poll(Observable<TaskStatus> taskObservable) { Observable.add(taskObservable) //Pseudocode .buffer(3 sec) .flatMap(...) ... } 私人可观察投票(可观察任务可观察){ add(taskObservable)//伪代码 .缓冲
private Observable poll(Observable<TaskStatus> taskObservable) {
Observable.add(taskObservable) //Pseudocode
.buffer(3 sec)
.flatMap(...)
...
}
私人可观察投票(可观察任务可观察){
add(taskObservable)//伪代码
.缓冲区(3秒)
.flatMap(…)
...
}
如何实现可观察的累积(“add”)呢?您可能正在寻找merge()操作符
有关组合观测值的更多信息,请参见:对于累加,我认为您可能需要Rx.NET中的CompositeDisposable之类的东西 示例Rx.NET使用情况: Rx.NET类的文档: 我相信RXJava等价物是CompositeSubscription类 请参阅此处:您应该使用运算符(请参阅更多信息,使用
窗口搜索版本(源代码, 时间跨度, 单位)
)
您的代码应该是这样的:
Observable.window(3, TimeUnit.SECONDS).flatmap(...)
你能举一个所需输入和输出的例子吗?如果你同时有两个(或更多)现有的可观察对象,那么合并是很好的。Observable.merge(observable1,observable2);这就像调用ListUtils.union(list1,list2);但我想把它们一个一个地加到一个“空的可观测”中。你明白我的意思吗?我补充了另一个关于组合一次性/订阅的答案。希望这就是你想要的?