RxJava's combineLatest
is very convenient but I can use it difficultly because it has many overloads.
So I wrote the code snippet for combineLatest
.
val name = PublishSubject.create<String>()
val age = PublishSubject.create<Int>()
// Can not omit Type parameters and BiFunction
Observable.combineLatest<String, Int, String>(
name, age, BiFunction { n, a -> "$n - age:${a}" })
.subscribe({
Log.d("combineLatest", "onNext - ${it}")
})
// If you introduce RxKotlin then you can use type inference
Observables.combineLatest(name, age) { n, a -> "$n - age:${a}" }
.subscribe({
Log.d("combineLatest", "onNext - ${it}")
})
// Also we can use Observable array for 1st parameter
// but second parameter to be array, it's not cool.
Observable.combineLatest(arrayOf(name, age), {
val n = it[0] as String
val a = it[1] as Int
"$n - age:${a}" })
.subscribe({
Log.d("combineLatest", "onNext - ${it}")
})
name.onNext("saito")
age.onNext(24)
name.onNext("yoshida")
Top comments (0)