如何将 Function3 转换为并行命中 2 API 而不是 3 个或更多?
How to convert the Function3 to hit 2 API's in parallel instead of 3 or more?
我正在使用以下方式并行命中 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 */ }
)
我正在使用以下方式并行命中 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 */ }
)