如何从第一个可观察到的东西获得排放值

我有这样的流量

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<>