1
我在我的應用程序中有兩個服務端點a
和b
(都是「單人」)。服務b
的請求取決於a
的響應。在b
的響應之後,我需要訪問我的訂閱者中的兩個響應。我打算做這樣的呼籲:RxJava在鏈式網絡請求中獲得先前可觀察結果
services.a()
.flatMap(a -> services.b(a))
.subscribe(b ->
// Access a and b here
)
但這種方式,我只能在我的用戶訪問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();
})
但隨着用例變得更復雜一點,代碼將演變爲一個醜八怪。