目前,我正在尝试迁移到新的 Android 分页 3 库,但如果我看对了,我不能:(
我使用 AWS Amplify 作为我的后端数据源,并希望在分页库的 PaginSource 类的新加载函数中包含一个查询。
override suspend fun load(params: LoadParams<String>): LoadResult<String, Car> {
val query = ListCarsQuery.builder().limit(params.loadSize).build()
appSyncClient.query(query)
.responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
.enqueue(
object : GraphQLCall.Callback<ListCarsQuery.Data>() {
override fun onResponse(response: Response<ListCarsQuery.Data>) {
val result = CarTransformer.toModels(response)
// Here is my actual result list
}
override fun onFailure(e: ApolloException) {
TODO("Not yet implemented")
}
}
)
//How can I add my result list here ?
return LoadResult.Page(
data = listOf(),
prevKey = null,
nextKey = ""
)
因为方法 enqueues 给了我一个 void 返回,所以我不知道如何等待它或触发像分页库 2 中那样的回调。在分页 2 中,我可以选择调用 callback.onResult(result.data, result.在 enqueue().onResponse 函数中的 nextLink) 方法,而无需返回任何内容。
有没有办法实现它或者我应该坚持使用第 2 页?