gpt4 book ai didi

android - 我如何让 RxJava2 Completable andThen() 工作?

转载 作者:行者123 更新时间:2023-11-29 15:00:18 27 4
gpt4 key购买 nike

在我的 Android 应用程序中,我想更新部分数据库条目(使用 Room),然后在更新完成后立即从数据库中读取整个条目。

阅读RxJava Completable的文档后我希望 public final Single andThen(SingleSource next)为我完成工作。但以下代码 fragment 仅记录“Completable”。不记录“单个”和“来自单个”。

import io.reactivex.Completable;
import io.reactivex.CompletableEmitter;
import io.reactivex.CompletableOnSubscribe;
import io.reactivex.Single;
import io.reactivex.functions.Consumer;

Completable completable = Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(CompletableEmitter e) throws Exception {
Log.e(LOG, "Completable");
}
});

Single<Long> single = Single.fromCallable(new Callable<Long>() {
@Override
public Long call() throws Exception {
Log.e(LOG, "Single");
return Long.valueOf(123);
}
});

completable.andThen(single).subscribe(new Consumer<Long>() {
@Override
public void accept(@NonNull Long aLong) throws Exception {
Log.e(LOG, "From Single: " + aLong.toString());
}
}, new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) throws Exception {
Log.e(LOG, "Error from Single");
}
});

最佳答案

Completable 永远不会完成。您需要在发射器上调用 .onComplete()

因此您的可完成内容将如下所示:

Completable completable = Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(CompletableEmitter e) throws Exception {
Log.e(LOG, "Completable");
e.onComplete();
}
});

关于android - 我如何让 RxJava2 Completable andThen() 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474605/

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