Espere hasta que dos observables emitan verdadero

Tengo un Fragment contenedor que contiene dos Fragments en una ViewPager . Quiero esperar hasta que estos dos Fragments estén listos para search algunos datos. ViewPagerFragment una class ViewPagerFragment que contiene este BehaviorSubject:

 val viewReady : BehaviorSubject<Boolean> = BehaviorSubject.createDefault(false) @CallSuper override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewReady.onNext(true) } 

Me suscribo a esto desde mi Fragment Contenedor:

 var tab1ready = tab1fragment.viewReady() var tab2ready = tab2fragment.viewReady() 

Quiero combinar estos dos de la siguiente manera:

"Cuando los dos han emitido verdadero, entonces llama al método fetchData() "

Estoy luchando para encontrar la forma adecuada de hacer esto que no se convierta en mantener un boolean para cada uno y verificar en cada emision si ambos booleans son verdaderos.

Por lo que entiendo, estás buscando el operador zip() .

http://reactivex.io/documentation/operators/zip.html

merge() podría funcionar para usted también. join() es una alternativa sensible al time.

https://github.com/ReactiveX/RxJava/wiki/Combining-Observables

Solución # 1: .filter () cada observable en 'verdadero', .zip () ambos, .take (1) .

Solución n. ° 2: Observable.combineLatest () , .filter () en ambos casos como 'true', .take (1) .

  • rxjava2 - ejemplo simple de ejecutar tareas en un grupo de subprocesss, suscribirse en un solo hilo
  • Cómo controlar el flujo sin .flatMap, que rompe una stream reactiva que impide que operadores como distinctUntilChanged trabajen en toda la secuencia
  • Cambie Flowable <List <Obj1 >> a Flowable <List <Obj2 >> en la habitación
  • rx-java2 Schedulers.io () steel invoca el método de mainThread
  • El método de callback a menudo para reenviar el evento a Observable?
  • Cómo upload el valor de retorno de un constructor
  • Encadenando Observables para evitar suscripciones múltiples
  • Kotlin no puede inferir el tipo cuando utiliza la reference de método en Flowable
  • Cómo contar el time de ejecución de lo observable
  • Observable.fromCallable () implementación con exception
  • Cómo retrasar onError () en RxJava 2 y Android?