2017-04-26 8 views
0

RxScala에서 2 개 이상의 Observables를 "압축"하는 방법은 무엇입니까?RxScala "zip"다중 Observables

val ob1: Observable[Int] = Observable.from(Future(10)) 
val ob2: Observable[Int] = Observable.from(Future(20)) 
val ob3: Observable[Int] = Observable.from(Future(30)) 

"지퍼"2 Observables은

val obComb: Observable[(Int, Int, Int)] = ob1 zip ob2 

어떻게 우리 "우편"2 개 이상 Observables은 함께 완벽하게 작동?

답변

0

을 사용하면 "압축"기능을 제공 할 수 있습니다. 두 개 이상의 압축 중 Observables은 이후

val obComb = ob1 
    .zipWith(ob2)({ case (x1, x2) => (x1, x2) }) 
    .zipWith(ob3)({ case ((x1, x2), x3) => (x1, x2, x3) }) 
0

는 그것을 동반자 객체에서 "정적"방법으로 정의되어, 인스턴스 방법으로 "좋게"를 정의 할 수 없다. 즉, 세 개의 Observables를 지우려면 다음과 같이 작성하십시오.

val obComb = Observable.zip(ob1, ob2, ob3)