繁体   English   中英

Rxjava2结合多种操作

[英]Rxjava2 combine multiple operations

例如,如果我有3个功能

Completable requestLogin()

Single hasProjects()

Completable createDefaultProject()

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

requestLogin() > onComplete > hasProjects() > onSuccess > if(!hasProjets) > createDefaultProject()

有可能的? 如果发生错误怎么办?

这就是您使用Rx的原因之一。 一种可能是:

requestLogin()
   .andThen(
         hasProjects()
            .filter(value -> !value)
            .flatMapCompletable(value -> createDefaultProject()))
   .subscribe(() ->{}, throwable -> {
         // All errors will end up here
     });

我们要求登录,登录完成后,我们将检查是否有项目。 如果不是,则filter不会终止创建默认项目的流。 如果有项目,则不会创建默认项目。

如果在执行过程中出现任何错误,将调用onError方法,您可以在那里处理错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM