Android 如何从第一个可见光中获取发射值

Android 如何从第一个可见光中获取发射值,android,rx-java,kotlin,Android,Rx Java,Kotlin,我有一个这样的流 Observable.fromIterable(configuration.symbols) // list of data (for ex. 0, 1, 2, 3) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .flatMap

我有一个这样的流

        Observable.fromIterable(configuration.symbols) // list of data (for ex. 0, 1, 2, 3)
                    .subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .flatMap {
api.anotherCall(
                                symbol = it) // emitted value 
                                .subscribeOn(Schedulers.newThread())
                                .observeOn(AndroidSchedulers.mainThread())
                    }
                    .subscribe { res ->
                        {
                            Ln.i(res) // result, but it would be perfect to know this data + symbol as a second param
                        }
                    }
谢谢你的帮助


ps Kotlin语法

您必须使用
flatMap
以外的东西,比如
zip
()。
使用
zip
可观察到的两个将被两个接一个地组合起来

或者您可以继续使用
flatMap
,但在第二个可观察对象上添加
map
,如:

api.anotherCall(symbol = it) // emitted value 
    .map { secondValue -> it to secondValue }
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())

然后,终端观察者将收到一对

您必须使用
flatMap
以外的东西,如
zip
()。
使用
zip
可观察到的两个将被两个接一个地组合起来

或者您可以继续使用
flatMap
,但在第二个可观察对象上添加
map
,如:

api.anotherCall(symbol = it) // emitted value 
    .map { secondValue -> it to secondValue }
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())

然后,终端观察者将收到一对

谢谢,收到了。在第二次通话中使用
map
是类似的解决方案。谢谢,明白了。在第二次调用中使用
map
与我使用的解决方案类似