如何避免RxJava 2中的toBlocking

时间:2019-02-19 13:13:25

标签: java rx-java rx-java2

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

带有toBlocking()的示例代码:

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

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

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

这里在类中全局声明了变量user,它可以正常工作,但是在方法内部,它显示错误。

1 个答案:

答案 0 :(得分:0)

您可能想要类似blockingFirst的内容:

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

我鼓励您考虑这样做是否正确,但是(您是否真的需要阻止并跳出此用例的反应式世界?如@akarnokd所述,请阅读{{3 }})