gpt4 book ai didi

kotlin - 自动订阅Rx流中的可观察对象

转载 作者:行者123 更新时间:2023-12-02 13:36:02 25 4
gpt4 key购买 nike

我有以下代码:

Completable.fromCallable { messagesBO.deleteAllGroupsForMessage(messageId) }
.andThen { Completable.fromAction { messagesBO.storeMessageGroups(messageToGroups) }.subscribe() }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
},
{ error -> }
))

我还有第二个Completable:
Completable.fromAction

我需要订阅此命令才能运行fromAction中的函数。但这似乎不是一种干净的方法。

我不一定要使用Completable,因为我不会在onComplete中返回任何内容。还有其他方法可以调用函数并使其自动订阅吗?实际上,我可以有多个andThen,并希望将它们链接在一起。

更新:

这是一个解决方案,尽管我不认为这是最好的:
Observable.fromCallable { messagesBO.deleteAllGroupsForMessage(messageId) }
.flatMapCompletable { Completable.fromAction { messagesBO.storeMessageGroups(messageToGroups) } }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
},
{ error -> }
))

最佳答案

事实证明,它比我想象的要简单。仅使用map即可自动运行代码,而无需创建可观察的代码:

Observable.fromCallable { messagesBO.deleteAllGroupsForMessage(messageId) }
.map { messagesBO.storeMessageGroups(messageToGroups) }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{

},
{ error -> }
)

关于kotlin - 自动订阅Rx流中的可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002663/

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