如何将平面地图和以前的单人地图结合起来

如何将平面地图和以前的单人地图结合起来

问题描述:

有下一个工作代码,结合了.connect().auth()的结果。如何将平面地图和以前的单人地图结合起来

auth()取决于connect()的结果。总而言之,必须将api和auth结果合并到Connection对象中。

fun getConnection(token: String): Single<Connection> { 
    return connect() 
      .map { Api(it) } 
      .flatMap { api -> api.auth(token) 
           .map { Connection(api, it) } 
        }  
} 

恕我直言,这段代码很有味道。可能它有没有在rxjava2内部映射获得Connection更优化的解决方案?

+0

我发现它返回单。所以我认为所有的方法都返回'Single'。该代码不难闻。 –

+1

您可以通过明确命名lambda参数而不是“it”来改进。当lambda嵌套或类型不明显时,不推荐使用'it'。 – voddan

在你的情况下,你根本不需要使用map()。只需在flatmap()内创建您的Api对象。

fun getConnection(token: String): Single<Connection> { 
    return connect().flatMap { conn -> 
    val api = Api(conn) 
    api.auth(token).map { Connection(api, it) } 
    }  
}