我试图将HystrixObservableCommand与Spring WebFlux WebClient一起使用,我想知道是否存在将Mono转换为rx.Observable的“干净方法”。我的初始代码如下:
public Observable<Comment> getComment() {
return webClient.get()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Comment.class)
// stuff missing here :(.
}
这样做容易吗?
致谢
答案 0 :(得分:3)
推荐的方法是使用RxJavaReactiveStreams,更具体地说:
public Observable<Comment> getComment() {
Mono<Comment> mono = webClient.get()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Comment.class);
return RxReactiveStreams.toObservable(mono); // <-- convert any Publisher to RxJava 1
}
答案 1 :(得分:0)
您可以使用
Observable.fromFuture(webClient.get()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Comment.class).toFuture());