gpt4 book ai didi

android - 如何在执行另一个 Completable 后链接 Completable 列表

转载 作者:行者123 更新时间:2023-11-29 19:04:46 43 4
gpt4 key购买 nike

我正在尝试将一些数据保存在数据库中。对于添加方法,我使用 Completable。在我保存一个实体 - 客户之后,我想保存一个天数列表,但只有在客户被保存之后。这是我现在的代码。

mDatabaseManager.addCustomer(customer)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(() -> {
for (Day day : days) {
mDatabaseManager.addDay(day)
.subscribeOn(Schedulers.io())
.subscribe(() -> {});
}
});

它有效,但有时我会收到错误:

io.reactivex.exceptions.OnErrorNotImplementedException: FOREIGN KEY constraint failed (code 787)

而且我还了解到这不是正确的方法,我应该链接可完成的。我找到了 concatWith 和 andThen 运算符,但我仍然无法重写这段代码。谁能告诉我怎么做?

最佳答案

您可以andThendays的列表包装到一个Observable中,然后使用concatMap Completable将它们插入一个

mDatabaseManager.addCustomer(customer)
.subscribeOn(Schedulers.io())
.andThen(
Observable.fromIterable(days)
.concatMapCompletable(day ->
mDatabaseManager.addDay(day)
.subscribeOn(Schedulers.io())
)
)
.observeOn(AndroidSchedulers.mainThread())
.subscribe();

关于android - 如何在执行另一个 Completable 后链接 Completable 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47705531/

43 4 0