如何在 RXJava 中过滤列表
How to filter list in RXJava
我正在尝试过滤从方法
中获得的 single<list<item>>
return getList(number)
.filter { it -> it.age } <--- problem
.flatMap { addMoreData(it) }
.map(mapper)
fun getList(number: Int): Single<List<Item>> {
//do so things
}
但在这种情况下我不能这样做,因为 it
有一个 List<Item>
而不是 Item
。
我希望它在 RXJava 中(不想 运行 循环列表并过滤它的方法)
我该怎么做?
如果getList()
returnsSingle<List<Item>>
,那么我觉得flattenAsObservable
就是你想要的:
return getList()
.flattenAsObservable { it -> it } // Turns it into Observable<Item>
.filter { it -> it.age }
.flatMap { addMoreData() }
.map(mapper)
你也可以使用.flatMapObservable { list -> Observable.fromIterable(list) }
,但它有点冗长。
我正在尝试过滤从方法
中获得的single<list<item>>
return getList(number)
.filter { it -> it.age } <--- problem
.flatMap { addMoreData(it) }
.map(mapper)
fun getList(number: Int): Single<List<Item>> {
//do so things
}
但在这种情况下我不能这样做,因为 it
有一个 List<Item>
而不是 Item
。
我希望它在 RXJava 中(不想 运行 循环列表并过滤它的方法)
我该怎么做?
如果getList()
returnsSingle<List<Item>>
,那么我觉得flattenAsObservable
就是你想要的:
return getList()
.flattenAsObservable { it -> it } // Turns it into Observable<Item>
.filter { it -> it.age }
.flatMap { addMoreData() }
.map(mapper)
你也可以使用.flatMapObservable { list -> Observable.fromIterable(list) }
,但它有点冗长。