android - 如何将 Function3 转换为并行命中 2 个 API 而不是 3 个或更多?
问题描述
我正在使用以下方式并行访问 3 个 API,因为我可以看到,如果您想访问更多 API,则有 Function4、5、6,但没有 Function2<..> 那么使用什么来访问 2 个 API?
Observable.zip(
backendApi.getFCdata("","","",""),
backendApi.getAKCountry(),
backendApi.getRecyclerData("","",""),
Function3<ResponseGetFCData, ResponseAK, List<ResponseMarket>, List<ResponseMarket>> {
fcData, akCountry, recyclerData ->
// Your operation here
return recyclerData
})
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe { /* Loading Start */ }
.doOnTerminate { /* Loading End */ }
.subscribe(
{ /* Successfully Synced */ },
{ /* Having error */ }
)
使用上述示例的 2 个 API 的转换形式将有很大帮助。谢谢你。
解决方案
您必须BiFunction
为此目的使用。检查以下:
Observable.zip(
backendApi.getFCdata("","","",""),
backendApi.getRecyclerData("","",""),
BiFunction<ResponseGetFCData, List<ResponseMarket>, List<ResponseMarket>> {
fcData, recyclerData ->
// Your operation here
return recyclerData
})
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe { /* Loading Start */ }
.doOnTerminate { /* Loading End */ }
.subscribe(
{ /* Successfully Synced */ },
{ /* Having error */ }
)
推荐阅读
- xcode - Xcode 12.3 在 SwiftUI 项目启动时冻结
- scala - 在 Spark-Scala 中将 Dataset[Row] 转换为 RDD[Array[String]] 的最佳方法?
- html - 从表单中删除 select2 类
- r - ggplot2 有两个图例。怎么去掉上面的?
- python - 烧瓶没有重定向 - Python
- google-chrome-extension - 如何在 Chrome Extensions Manifest v3 中集成 GAPI?
- xml - 如何使用 groovy DOMBuilder 在 XML 文件中设置 DOCTYPE
- spring-boot - 不清楚为什么我的第二个 application.yml 没有加载
- sql - INFORMATION_SCHEMA.COLUMNS 突然为空
- python-3.x - 密码生成器 - 具有最小密码长度约束的实现,例如密码长度 = 8(在 python 中)