Android rxjava toList()不返回数据

时间:2018-03-19 16:51:40

标签: android kotlin rx-java rx-android

我有ObservableString数组中获取数据。每个字符串都是一个id,所以我想用该数组查询我的数据库表并获取一个对象。最后,我想添加列表中找到的对象并将其返回subscribe()。以上我有代码我尝试这样做

val temp = Observable.from(plan.components)
            .flatMap {
                id -> subscriptionRepository.getComponentByUuid(id)
                    .filter { component -> !component.enabled }
            }
            .map { component -> component }
            .toList()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe ({ list -> TNLog.d("List size is: "+list.size)})

    unsubscribeOnUnbindView(temp)

问题是,即使代码到达.map并且可以看到对象是正确的,在调用.toList()之后也没有。似乎永远不会调用onComplete,因此.subscribe()也不会。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

需要onComplete的

toList()才能知道何时返回。只需在您的来源上调用onComplete即可。