Adapt From-To Other Classes
We can convert from Reactor (Mono
or Flux
) to RxJava classes such as Observable or Flowable
This is because they're both implemented from Reactive Stream
Adapt between RxJava Flowable and Flux
static Flux<User> fromFlowableToFlux(Flowable<User> flowable) {
return Flux.from(flowable);
}
static Flowable<User> fromFluxToFlowable(Flux<User> flux) {
return Flowable.fromPublisher(flux);
}
Adapt between RxJava Observable and Flux
static Flux<User> fromObservableToFlux(Observable<User> observable) {
return Flux.from(observable.toFlowable(BackpressureStrategy.BUFFER));
}
static Observable<User> fromFluxToObservable(Flux<User> flux) {
return Observable.fromPublisher(flux);
}
For Observable, we need to first convert it to Flowable since Observable doesn't have BackPressure
Adapt between Single and Mono
static Mono<User> fromSingleToMono(Single<User> single) {
return Mono.from(single.toFlowable());
}
static Single<User> fromMonoToSingle(Mono<User> mono) {
return Single.fromPublisher(mono);
}
Adapt between CompletableFuture
and Mono
static CompletableFuture<User> fromMonoToCompletableFuture(Mono<User> mono) {
return mono.toFuture();
}
static Mono<User> fromCompletableFutureToMono(CompletableFuture<User> future) {
return Mono.fromFuture(future);
}
[!important]
Only Mono can convert toCompletableFuture
, not Flux