Rxjava2结合了多个操作

问题描述 投票:0回答:1

例如,如果我有3个功能

Completable requestLogin()

Single hasProjects()

Completable createDefaultProject()

我如何在单个请求中组合它们

requestLogin()> onComplete > hasProjects()> onSuccess >

有可能的?如果出现错误会发生什么?

java rx-java2 rx-android
1个回答
2
投票

这是你使用Rx的原因之一。一种可能性是:

>

我们请求登录,一旦完成,我们检查是否有项目。如果不是,则requestLogin() .andThen( hasProjects() .filter(value -> !value) .flatMapCompletable(value -> createDefaultProject())) .subscribe(() ->{}, throwable -> { // All errors will end up here }); 不会终止创建默认项目的流。如果有项目,则不会创建任何默认项目。

如果一路上有任何错误,将调用filter方法,您可以在那里处理错误。

© www.soinside.com 2019 - 2024. All rights reserved.