Вопрос довольно сложный, но в коде, кажется, выглядит проще (я надеюсь)
У меня есть такие функции, как ниже
fun trackFoos(): Observable<List<Foo>> {/*....*/}
fun getBarForFoo(fooState: Foo.State): Single<Bar>
И у меня был какой-то код, который связан сдругие части приложений, поэтому я не могу изменить его слишком сильно.
Observable.combineLatest(
trackFoos(),
Observable.interval(1, TimeUnit.SECONDS),
BiFunction() {foos: List<Foo>, _:Long -> foos}
).subscribe { foos -> /*....*/ }
А теперь мне нужно передать также объект Bar для каждого объекта foo, используя этот getBarForFoo
Так что мне нужнонапишите trackPairOfFooAndBar()
, используя trackFoos()
и getBarForFoo()
, чтобы использовать его, как показано ниже:
Observable.combineLatest(
trackPairOfFooAndBar(),
Observable.interval(1, TimeUnit.SECONDS),
BiFunction() {fooBarList: List<Pair<Foo,Bar>>, _:Long -> fooBarList}
).subscribe { fooBarList-> /*....*/ }
Я видел этот ответ: https://stackoverflow.com/a/47676208/1461568 но есть предположение, что второй вызов можно наблюдать (у меня естьSingle)
Так как это сделать?