Seb*_*ian 6 java rx-java rx-java2
我的应用程序中有2个服务端点,a并且b(两个都是“ Singles”)。服务请求b取决于的响应a。在响应之后,b我需要访问订户中的两个响应。我打算这样打电话:
services.a()
.flatMap(a -> services.b(a))
.subscribe(b ->
// Access a and b here
)
Run Code Online (Sandbox Code Playgroud)
但是通过这种方式,我只能访问b订户中的结果。我又如何传递对此的回应a?
我的第一个尝试是使用类似这样的东西:
// Note: Code will not compile... Just to show the concept
services.a()
.flatMap(
a -> Observable.combineLatest(
Observable.just(a)
services.b(a).toObservable()
Bifunction((a, b) -> {return Pair<ResponseA, ResponseB>(a, b)}))
)
.toSingle()
.subscribe(pair -> {
ResponseA a = pair.first();
ResponseB b = pair.second();
})
Run Code Online (Sandbox Code Playgroud)
但是随着用例变得更加复杂,代码将演变为丑陋的怪物。
| 归档时间: |
|
| 查看次数: |
1616 次 |
| 最近记录: |