2017-04-26 2 views
0

RxScalaでは、2つ以上のオブザーバブルを "ジップ"する方法は?RxScala "zip"複数オブザーバブル

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つの観測

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

どのように完璧な作品たち "ジップ" 以上の2つの観測を行いますか?

答えて

0

zipWithを使用すると、「ジップ」機能を使用できます。つ以上の観測をジッピングので

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

がインスタンスメソッドとして「きれい」に定義することができない、それは、コンパニオン・オブジェクトの「静的」方法として定義されます。つまり、3つのオブザーバブルをジップするには、あなたが書いたのです。

val obComb = Observable.zip(ob1, ob2, ob3) 
関連する問題