使用Observable将RxJava集成到springboot应用程序中,我们能够从服务中获取数据。但是我对使用toBlocking()方法有疑问,因为我已经阅读了很多论坛帖子,说它在生产服务器中存在问题。看我下面的代码,

toBlocking()的示例代码:

userService.getUsers()
    .subscribeOn(Schedulers.io())
    .toBlocking()
    .single();


我想更改以上内容以获取用户对象而不是Observable对象。
例如:

User user = new User();
userService.getUsers().subscribe(u ->user = u );


此处,变量user在类中全局声明,可以正常工作,但在方法内部却显示错误。

最佳答案

您可能想要类似blockingFirst的东西:

final User user = userService
    .getUsers()
    .blockingFirst()


不过,我鼓励您考虑这样做是否正确(对于此用例,您是否真的需要阻止并跳出反应式世界?如@akarnokd所述,请阅读Getting Started

09-11 20:32