RxJava в combineLatest
очень удобно но я могу использовать его с трудом, потому что у него много перегрузок. Поэтому я написал фрагмент кода для combineLatest
.
val name = PublishSubject.create() val age = PublishSubject.create () // Can not omit Type parameters and BiFunction Observable.combineLatest ( 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")
- Реактивный/RxJava: RxJava – Реактивные расширения для JVM – библиотека для составления асинхронных и основанных на событиях программ с использованием наблюдаемых последовательностей для виртуальной машины Java.
- Реактивекс/RxKotlin: Привязки RxJava для Котлина
Оригинал: “https://dev.to/amay077/rxjava-combinelatest-quick-example-e8b”