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
与我使用的解决方案类似