RxJava zip运算符生成15+;后台网络呼叫 private fun getAllFollowers(用户:用户){ val items=user.items val requests=ArrayList() for(items!!.iterator()中的项){ add(autocompletepiprovider.getFollowersList(item.followersUrl)) } //这里ZIP没有解析 zip(请求,函数(){ var allResponse=java.util.ArrayList() allResponse.add(它) return@FunctionallResponse }) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(Action1{time->Log.d(标记“我将在此处调用适配器”), Action1{throwable->Log.d(标记“此处处理部件时出错”)} }
这里,zip运算符未解析。我不确定我是否将正确的参数传递给zip操作符RxJava zip运算符生成15+;后台网络呼叫 private fun getAllFollowers(用户:用户){ val items=user.items val requests=ArrayList() for(items!!.iterator()中的项){ add(autocompletepiprovider.getFollowersList(item.followersUrl)) } //这里ZIP没有解析 zip(请求,函数(){ var allResponse=java.util.ArrayList() allResponse.add(它) return@FunctionallResponse }) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(Action1{time->Log.d(标记“我将在此处调用适配器”), Action1{throwable->Log.d(标记“此处处理部件时出错”)} },android,rx-java,retrofit2,rx-java2,rx-android,Android,Rx Java,Retrofit2,Rx Java2,Rx Android,这里,zip运算符未解析。我不确定我是否将正确的参数传递给zip操作符 private fun getAllFollowers(user: User){ val items = user.items val requests = ArrayList<Observable<List<Followers>>>() for (item in items!!.iterator()) { requests.add(Auto
private fun getAllFollowers(user: User){
val items = user.items
val requests = ArrayList<Observable<List<Followers>>>()
for (item in items!!.iterator()) {
requests.add(AutoCompleteApiProvider.getFollowersList(item.followersUrl))
}
//here ZIP is not resolving
Observable.zip(requests, Function<ArrayList<Followers>,java.util.ArrayList<java.util.ArrayList<Followers>>>(){
var allResponse = java.util.ArrayList<java.util.ArrayList<Followers>>()
allResponse.add(it)
return@Function allResponse
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Action1<ArrayList<ArrayList<Followers>>> { time -> Log.d(TAG, "I will call adapter here") },
Action1<Throwable> { throwable -> Log.d(TAG, "error handing part here")})
}
我想执行以下任务。
使用GitHub API按用户名搜索用户(按
并在RecyclerView中显示结果
因此,作为editText中的用户类型,我正在调用Github API,它给出了用户名建议,但我想根据每个名称的追随者数量对该名称进行排序。
为了让追随者计数,我需要使用用户名作为查询参数进行单独的Github API调用,API将使用追随者对象进行响应。我将计算这个对象
这里棘手的部分是,如果搜索建议API给出30个用户的响应。
我将不得不并行地进行30次网络调用,并且必须等到每个API调用的响应。一旦我有30个响应,我将统计每个用户的关注者,并执行关注者排序,并在recyclerview中显示结果
所以一旦我有了用户名建议。我使用rxjavazip操作符调用API来获取追随者。
我正在制作一个可观察的列表
,并将此列表传递给zip操作符,这里是我的问题,我应该将哪个函数作为zip操作符中的第二个参数传递。有什么建议吗
rest代码已完成,但我仍停留在zip运算符上。变量请求是可观察的数组列表
private fun getAllFollowers(user: User){
val items = user.items
val requests = ArrayList<Observable<List<Followers>>>()
for (item in items!!.iterator()) {
requests.add(AutoCompleteApiProvider.getFollowersList(item.followersUrl))
}
//here ZIP is not resolving
Observable.zip(requests, Function<ArrayList<Followers>,java.util.ArrayList<java.util.ArrayList<Followers>>>(){
var allResponse = java.util.ArrayList<java.util.ArrayList<Followers>>()
allResponse.add(it)
return@Function allResponse
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Action1<ArrayList<ArrayList<Followers>>> { time -> Log.d(TAG, "I will call adapter here") },
Action1<Throwable> { throwable -> Log.d(TAG, "error handing part here")})
}
val observefun=Observable.zip(请求,函数{t->
/*写下你自己的逻辑,把所有可观察到的反应结合起来*/
return@FunctionallResponse
})
并订阅此observableFun。函数的签名是Java中的
function
。使用Kotlin中的等效类型定义。您能为我的用例用java编写Function的签名吗?返回类型将为ArrayList我将其作为练习留给您。