我有一些使用 flatMap 的串聯(lián)可觀察對(duì)象,例如api.call1().flatMap{a-> api.call2(a)}.flatMap{b-> api.call3(a,b) //<- no access to a}問題是在第三個(gè)串聯(lián)調(diào)用中,我需要從前一個(gè)調(diào)用中得到的結(jié)果,但也需要從第一個(gè)調(diào)用中得到的結(jié)果這是方案:A->(a)->B->(b)-> C( 需要b但也需要a )->...我試著這樣解決:1 種方法(在第二個(gè)中嵌套了第三個(gè)可觀察對(duì)象)api.call1() .flatMap{a-> api.call2(a).flatMap{b-> api.call3(a,b)}}它有效,但我知道這不是一個(gè)好方法(因?yàn)閺墓艿劳獠總鬟f參數(shù))2 方法(更好但有很多樣板文件)api.call1().flatMap{ a-> Observable.combineLatest(Observable.just(a),api.call2(a), BiFunction{ a,b -> Pair(a,b)}) .flatMap(pair:Pair<A,B> -> api.call3(pair.first,pair.second))}}任何人都知道更好的方法(一些時(shí)尚運(yùn)營商)謝謝大家為我可憐的英格斯感到抱歉。
使用 flapMap 連接 Observables (RxJava)
慕標(biāo)琳琳
2023-01-05 17:26:11