I\'m trying to accomplish the following: Return some data as single, execute a completable after. The following code does not compile due to single.andThen(). The actions need t
Note that if you don't care whether the result is Single or Completable there is a special flatMapCompletable
operator in RxJava2 to execute completable after Single:
single.flatMapCompletable(result -> completable);
Use flatMap
:
single.flatMap(v -> completable.andThen(Single.just(v)))
Assuming you actually want to return the Single after the Completable, here's another way:
Using Java:
single.flatMap(x -> completable.toSingleDefault(x))
Using Kotlin:
single.flatMap { completable.toSingleDefault(it) }
If anyone is interested in a the RxSwift solution:
saveObjectsA().flatMap { (objectsA: [A]) -> Single<Bool> in
B.objects = objectsA
return completable.andThen(Single.just(true))
}
saveObjectsA returns a Single<[A]> which is an attribute of B (created previously). I needed to save it before saving B.