带flapMap的串联观测值(RxJava)

带flapMap的串联观测值(RxJava),java,android,reactjs,rx-java,Java,Android,Reactjs,Rx Java,我有一些使用flatMap连接的可观察对象,比如 api.call1() .flatMap{a-> api.call2(a)} .flatMap{b-> api.call3(a,b) //<- no access to a} 它可以工作,但我知道这不是一个好方法(因为从管道外部传递参数) 2方法(更好,但有很多样板) api.call1().flatMap{a-> 可观察。组合测试(可观察。仅(a),api.call2(a), 双函数{a,b->Pair(a,b)}) .fl

我有一些使用flatMap连接的可观察对象,比如

api.call1()
.flatMap{a-> api.call2(a)}
.flatMap{b-> api.call3(a,b) //<- no access to a}
它可以工作,但我知道这不是一个好方法(因为从管道外部传递参数)

2方法(更好,但有很多样板)

api.call1().flatMap{a->
可观察。组合测试(可观察。仅(a),api.call2(a),
双函数{a,b->Pair(a,b)})
.flatMap(pair:pair->api.call3(pair.first,pair.second))
}}
有谁知道更好的方法(某个时尚运营商)


非常感谢大家为我可怜的ingles所做的一切。

还有第二个超负荷的
flatMap
,它接受输入和输出。然后,您可以将它们组合成
,以发送到下一个
平面图

api.call1()
    .flatMap( 
        { a -> api.call2(a) },
        { a, b -> new Pair(a, b) }
    )
    .flatMap { pair-> api.call3(pair.first, pair.second) }

第二个重载是
flatMap
,它同时接受输入和输出。然后,您可以将它们组合成
,以发送到下一个
平面图

api.call1()
    .flatMap( 
        { a -> api.call2(a) },
        { a, b -> new Pair(a, b) }
    )
    .flatMap { pair-> api.call3(pair.first, pair.second) }
api.call1()
    .flatMap( 
        { a -> api.call2(a) },
        { a, b -> new Pair(a, b) }
    )
    .flatMap { pair-> api.call3(pair.first, pair.second) }