带有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的扩展函数使其成为可观察的一部分,以便可以像在库中一样使用它们:)