我想PagingData<T>
在某个中间类中获取对象的数据,就像ViewModel
在它到达之前一样,Adapter
并将其属性收集为列表。我可以通过 访问代码,flatmap
但我不想应用任何更改。此外,这种访问是无用的,因为整个块在订阅 observable 之后运行,ViewModel
所以它无法通过ViewModel
运行来访问。
private fun getAssignedDbList(): Flowable<PagingData<T>> {
var list = mutableListOf<Int>()
return repository.getList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap { pagingData ->
Flowable.just(pagingData.map
{ foo ->
list.add(foo.id)
foo })
}
}
另一个例子,假设我们有这样的场景:我将在分页数据到达视图持有者之前调用另一个 API。分页数据需要填充新的 API 调用响应。如何等待第二次 API 调用更新分页数据的数据?
private fun getListFromAPI(): Flowable<PagingData<T>> {
var list = mutableListOf<Int>()
return repository.getList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap { pagingData ->
//call another API calls and waiting for a response to change some of the fields of
//paging data
}
}