带有vararg可观测值的RxJava zip

带有vararg可观测值的RxJava zip,java,reactive-programming,rx-java,Java,Reactive Programming,Rx Java,当我们确切地知道我们有多少个观测值,以及它们的确切类型,我们想要压缩,我们就这样做 Observable<String> data1 = Observable.just("one", "two", "three", "four", "five"); Observable<String> data2 = Observable.just("one", "two", "three", "four", "five"); Observable<String> data3

当我们确切地知道我们有多少个观测值,以及它们的确切类型,我们想要压缩,我们就这样做

Observable<String> data1 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data2 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data3 = Observable.just("one", "two", "three", "four", "five");

Observable.zip(data1, data2, data3, (a, b, c) -> a + b + c);
Observable<String> data1 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data2 = Observable.just("one", "two", "three", "four", "five");
Observable<String> data3 = Observable.just("one", "two", "three", "four", "five");
List<Observable<String>> iter = Arrays.asList(data1, data2, data3);

Observable.zip(iter, args1 -> args1).subscribe((arg)->{
  for (Object o : arg) {
    System.out.println(o);
  }
});
那会产生什么

one
one
one
two
two
two
three
three
three
four
four
four
five
five
five

有一个zip方法,它接受一个Iterable。这将允许使用n个可观测值。

有没有办法通过时间限制zip?例如,如果前两个发出的值超过一秒,它将丢弃当前zip并等待另一批值?简而言之,为了确保所有到达的值都在某个特定的时间范围内…@vach这是一个有趣的问题,你能找出这是否可行吗?没有,但我通常自己编写自定义运算符,并使用kotlin的扩展函数使其成为可观察的一部分,以便可以像在库中一样使用它们:)