当我使用reflection
时,从后端和数据中获取数据
我想转换为其他数据,最后使用debounce()
。
当我使用toList()
没有任何事情发生没有任何日志没有订阅和错误,没有toList()
它工作,toList()
方法输入尽可能多的我有书籍列表,我测试了第二代码的一部分没有subscribe()
只有debounce()
并使用getItems()
就可以了。
以下是我的代码第一部分,toList()
和debounce()
不起作用,第二部分itList()
起作用
toList()
答案 0 :(得分:11)
toList
要求终止序列,而不会在响应文本事件的外部流上发生。您应该将书籍的处理移至switchMap
:
textChangeSubscriber
.map(CharSequence::toString) // <-- text components emit mutable CharSequence
.debounce(300, TimeUnit.MILLISECONDS)
.observeOn(Schedulers.computation())
.switchMap(s ->
getItems(s)
.flatMapIterable(items -> items)
.map(Book::convert)
.toList()
.toFlowable() // or toObservable(), depending on textChangeSubscriber
)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(books -> {
Log.i("test", "" + books.toString());
}, error -> {
Log.i("test", "" + error);
});