gpt4 book ai didi

rx-java - doOnNext() 在 io.reactivex.Single 中不存在

转载 作者:行者123 更新时间:2023-12-03 20:17:23 29 4
gpt4 key购买 nike

我正在将应用程序从 RxJava 1 迁移到 2。我有这样的代码:

RxJava 1

public Completable update() {
return client.fetchNotes()
.map(toNote())
.toList()
.doOnNext(save())
.toCompletable();
}

在上面的代码中, toList()返回 Observable<List<Note>> .

现在,我正在尝试将该代码转换为 RxJava 2:

RxJava 2
public Completable update() {
return client.fetchNotes()
.map(toNote())
.toList()
.doOnNext(save()) // <-- compilation error here
.ignoreElements();
}

在 RxJava 2 中, toList()返回 Single<List<Note>> ,所以我不能链接 doOnNext(save())到它,因为 doOnNext()不存在于 Single<T>.class .

如何在两种情况下获得相同的行为?基本上,在 save()方法,我正在存储 Note s 在数据库中,它必须来自 List<Note> ; Database我使用的界面不允许一一存储。这就是为什么我需要使用 toList() :
interface Database {
void store(List<Note> notes);
}

最佳答案

Single只发出一项,它没有“下一个”或 doOnNext() 的概念运算符(operator)。而是使用 doOnSuccess() .

关于rx-java - doOnNext() 在 io.reactivex.Single 中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582773/

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