RxJava在JavaFx中性能不佳



我正在使用RxJavaJavaFx一起使用,我不禁注意到性能不佳,每当我单击执行taskbutton时,button将保持突出显示,直到方法完成,应用程序的行为就像它在UI线程上运行该方法一样。当我用普通的 Javathread替换相同的Rx调用时,我注意到性能要好得多,按钮突出显示不会保持亮起,整体应用程序转换似乎要好得多。以下是我的Rx电话示例

Single.just(someMethod())
.observeOn(JavaFxScheduler.platform())
.subscribeOn(Schedulers.io())
.subscribe(new DisposableSingleObserver<>() {
@Override
public void onSuccess(Result result) {
//get my result
this.dispose();
}
@Override
public void onError(Throwable throwable) {
logger.error(throwable);
this.dispose();
}
});

我在Android中使用RxJava,与此相比,它的表现很好。有人有解决方案吗?

在组装期间,someMethod()将被急切地评估。您希望将其评估推迟到订阅发生时。不确定是否有RxJava中如何完成,但在Reactor中,您可以使用:Mono.defer() -> someMethod()

最新更新