组合两个发出不同类型的 Observable
Combine two Observable that emit different types
我有两个 Observable,一个 Observable<String>
,一个 Observable<Boolean>
。我可以将它们合并以便收到
@Override
public void call(String s, Boolean b) {
}
两个操作什么时候完成?
当你想等待从两个可观察对象发出的项目(同步它们)时,你通常需要像 Observable.zip
:
这样的东西
Observable<String> o1 = Observable.just("a", "b", "c");
Observable<Integer> o2 = Observable.just(1, 2, 3);
Observable<String> result = Observable.zip(o1, o2, (a, b) -> a + b);
result
将是一个 Observable,它会生成 (a, b) -> a + b
对 o1
和 o2
的项目的应用。导致可观察到的产量 "a1", "b2", "c3"
.
您也可以将 Obervable.zipWith
与实际实例一起使用以获得相同的效果。
请注意,当没有任何东西可以压缩时,这将在更短 observable 处终止。
我有两个 Observable,一个 Observable<String>
,一个 Observable<Boolean>
。我可以将它们合并以便收到
@Override
public void call(String s, Boolean b) {
}
两个操作什么时候完成?
当你想等待从两个可观察对象发出的项目(同步它们)时,你通常需要像 Observable.zip
:
Observable<String> o1 = Observable.just("a", "b", "c");
Observable<Integer> o2 = Observable.just(1, 2, 3);
Observable<String> result = Observable.zip(o1, o2, (a, b) -> a + b);
result
将是一个 Observable,它会生成 (a, b) -> a + b
对 o1
和 o2
的项目的应用。导致可观察到的产量 "a1", "b2", "c3"
.
您也可以将 Obervable.zipWith
与实际实例一起使用以获得相同的效果。
请注意,当没有任何东西可以压缩时,这将在更短 observable 处终止。