RXJava - concat 不起作用
RXJava - concat doesn't works
我在使用 RXJava 和 Kotlin 时遇到问题。
我正在使用 LiveData 和 Rx,我的问题是 concat 方法没有连接我在虚拟数据中的两个数组。
这是我的代码:
disposables.
add(
Observable.concat(Observable.just(DummyContent.COMPANIES),
Observable.just(DummyContent.COMPANIES))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Timber.d("get companies success ${it.size}" )
companiesLiveData.value = it
},{
t -> Timber.e(t, "get companies error")
}))
虚拟内容:
val COMPANIES: MutableList<Company> = ArrayList()
...
// Add some sample items.
for (i in 1..4) {
addCompany(createDummyCompany(i))
}
当我 运行 代码时,我只看到列表中的 4 个元素,我期望收到 4 + 4 = 8 个项目,因为 concat
方法。
在LogCat我看到这条消息两次:get companys success 4
我怎样才能做到这一点?
Observable.concat()
连接给它的两个流。因此,您将收到带有单个列表的两个事件。如果你想自己合并列表,你必须发出单个元素而不是列表,然后再次使元素成为列表。
Observable.concat(Observable.fromIterable(DummyContent.COMPANIES),
Observable.fromIterable(DummyContent.COMPANIES))
.toList()
我在使用 RXJava 和 Kotlin 时遇到问题。
我正在使用 LiveData 和 Rx,我的问题是 concat 方法没有连接我在虚拟数据中的两个数组。
这是我的代码:
disposables.
add(
Observable.concat(Observable.just(DummyContent.COMPANIES),
Observable.just(DummyContent.COMPANIES))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Timber.d("get companies success ${it.size}" )
companiesLiveData.value = it
},{
t -> Timber.e(t, "get companies error")
}))
虚拟内容:
val COMPANIES: MutableList<Company> = ArrayList()
...
// Add some sample items.
for (i in 1..4) {
addCompany(createDummyCompany(i))
}
当我 运行 代码时,我只看到列表中的 4 个元素,我期望收到 4 + 4 = 8 个项目,因为 concat
方法。
在LogCat我看到这条消息两次:get companys success 4
我怎样才能做到这一点?
Observable.concat()
连接给它的两个流。因此,您将收到带有单个列表的两个事件。如果你想自己合并列表,你必须发出单个元素而不是列表,然后再次使元素成为列表。
Observable.concat(Observable.fromIterable(DummyContent.COMPANIES),
Observable.fromIterable(DummyContent.COMPANIES))
.toList()