gpt4 book ai didi

android - 在 RxJava 2 中使用 FlatMap

转载 作者:行者123 更新时间:2023-11-29 14:44:42 25 4
gpt4 key购买 nike

我在一个新项目中使用 RxJava 2(我已经使用 RxJava 1 很长时间了)并且我在使用 flatMap(或者 flatMapSingle?)时遇到了一些问题。整个概念中似乎缺少某些东西。

mObjectManager.getAllObjects 返回 AsyncProcessor<List<Object>> .(我用“对象”替换了实际的类名)。

Disposable subscription = mObjectManager.getAllObjects()
.flatMapSingle(new Function<List<Object>, SingleSource<Object>>() {
@Override
public SingleSource<Object > apply(@io.reactivex.annotations.NonNull List<Object> objects) throws Exception {
// TODO WHAT GOES HERE?!
}
}).filter(new Predicate<Object>() {
@Override
public boolean test(@io.reactivex.annotations.NonNull Object object) throws Exception {
return TextUtils.isEmpty(mSearchTerm) || object.name.toLowerCase().contains(mSearchTerm.toLowerCase());
}
}).toSortedList(new Comparator<Object>() {
@Override
public int compare(Object c1, Object c2) {
return c1.name.compareTo(c2.name);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<List<Object>>() {
@Override
public void accept(@io.reactivex.annotations.NonNull List<Object> objects) throws Exception {
processObjects(objects);
}
});

我想知道如何将列表转换为 SingleSource?在 RxJava 2 中如何使用 flatMap?

最佳答案

好吧,我终于找到了答案。Flowable.fromIterable 就可以了!

...
.flatMap(new Function<List<Object>, Publisher< Object >>() {
@Override
public Publisher< Object > apply(@io.reactivex.annotations.NonNull List< Object > objects) throws Exception {
return Flowable.fromIterable(objects);
}
})

关于android - 在 RxJava 2 中使用 FlatMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43722813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com