如何在 RxJava 中构建可切换的可迭代流?
How to build a togglable iterable stream in RxJava?
我想构建一个可切换的可迭代流 (Observable<List<T>>
),如下所示:
- 订阅后,发出一个空的可迭代对象(例如 List)
- 收到输入后(PublishSubject?),将其添加到可迭代对象并发出。
- 当再次收到输入时,将其添加到可迭代对象(如果不存在)或从可迭代对象中移除(如果存在),然后发出它。
- 重复步骤 3。
用 RxJava 容易实现吗?
如果我的问题不清楚,请原谅,我是响应式编程的新手。
我想你可以用一个 Subject
+ scan
运算符来完成:
val subject = PublishSubject.create<Int>()
subject.scan(mutableListOf<Int>()) { list, item ->
list += item
list
}
我想构建一个可切换的可迭代流 (Observable<List<T>>
),如下所示:
- 订阅后,发出一个空的可迭代对象(例如 List)
- 收到输入后(PublishSubject?),将其添加到可迭代对象并发出。
- 当再次收到输入时,将其添加到可迭代对象(如果不存在)或从可迭代对象中移除(如果存在),然后发出它。
- 重复步骤 3。
用 RxJava 容易实现吗?
如果我的问题不清楚,请原谅,我是响应式编程的新手。
我想你可以用一个 Subject
+ scan
运算符来完成:
val subject = PublishSubject.create<Int>()
subject.scan(mutableListOf<Int>()) { list, item ->
list += item
list
}