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);但我想把它们一个一个地加到一个“空的可观测”中。你明白我的意思吗?我补充了另一个关于组合一次性/订阅的答案。希望这就是你想要的?