如何从第一个可观察到的东西获得排放值
我有这样的流量
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
( doc )的东西。
用zip
将两个可观察对象合并成两个两个。
或者你可以继续使用flatMap
但在第二个observable上添加一个map
,如:
api.anotherCall(symbol = it) // emitted value .map { secondValue -> it to secondValue } .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread())
那么最后的观察者将会收到一个Pair<>
。