无法从Single <List <T >>获取第一项

时间:2019-12-13 13:35:53

标签: android kotlin reactivex

在一个android项目中,我有一个这样的声明:

import io.reactivex.Completable
import io.reactivex.Single

val itemsList: Single<List<T>> = getItems()

我需要从 itemsList 获得第一项。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

由于您的Single类型为List<Item>,当您将其提取到apiRepositoryObject-网络层对象上时,将得到单个List<Item>或异常< / p>

apiRepositoryObject.getItems()
.subscribe(listOfItems -> {
    // The list of item should be handled here
},Throwable::printStackTrace);

答案 1 :(得分:1)

val itemsList: Single<List<T>> = getItems()

itemsList
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .map{list -> list.first()}
    .subscribeBy(
        onComplete = { firstItem -> {/* use your first item here */} },
        onError = { error -> {/* error handling */} }
    )