如果第一个Completable失败,则中止执行第二个Completable

时间:2018-08-14 20:18:31

标签: java rx-java2

我需要依次执行两个方法,但是如果第一个方法失败,我需要中止该过程。

我创建了以下示例来尝试Completable的{​​{1}}功能,但是它等待两种方法的结束都转到RxJava回调。

onError

如何解决此代码?

1 个答案:

答案 0 :(得分:0)

使用Completable.defer()就能实现我所需要的(感谢@akarnokd提供建议的链接):

step1().andThen(Completable.defer(() -> step2()))
        .subscribe(new CompletableObserver() {
            @Override
            public void onSubscribe(Disposable disposable) {

            }

            @Override
            public void onComplete() {
                System.out.println("Completed");
            }

            @Override
            public void onError(Throwable throwable) {
                System.out.println("Error");
            }
        });