如何在RxJava2中链接两个Completable


问题内容

我有两个完成。我想做以下情形:如果第一个Completable到达onComplete,则继续第二个Completable。最终结果将是第二完成的onComplete。

当我有单个 getUserIdAlreadySavedInDevice() 和Completable login() 时,这就是我的方法:

@Override
public Completable loginUserThatIsAlreadySavedInDevice(String password) {
    return getUserIdAlreadySavedInDevice()
            .flatMapCompletable(s -> login(password, s))

}

问题答案:

您正在寻找andThen运营商。

返回一个Completable,它首先运行此Completable,然后运行另一个Completable。

firstCompletable
    .andThen(secondCompletable)

通常,此运算符是flatMapon 的“替换” Completable

Completable       andThen(CompletableSource next)
<T> Maybe<T>      andThen(MaybeSource<T> next)
<T> Observable<T> andThen(ObservableSource<T> next)
<T> Flowable<T>   andThen(Publisher<T> next)
<T> Single<T>     andThen(SingleSource<T> next)