Как избежать блокирования в RxJava 2 - PullRequest
0 голосов
/ 19 февраля 2019

Интегрируя RxJava в приложение Springboot с помощью Observable, мы можем получить данные из сервиса.Но у меня есть сомнения в использовании метода toBlocking(), потому что я прочитал много сообщений на форуме, в которых говорится, что у него есть проблемы на рабочем сервере.Смотрите мой код ниже,

Пример кода с toBlocking():

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

Я хочу изменить выше, чтобы получить объект пользователя вместо объекта Observable.Например:

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

Здесь переменная user объявлена ​​глобально в классе, она работает нормально, но внутри метода она показывает ошибку.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы, вероятно, хотите что-то вроде blockingFirst:

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

Я бы посоветовал вам подумать, если это правильно, хотя (действительно ли вам нужноблокировать и выпрыгивать из реактивного мира для этого варианта использования ?. Как сказал @akarnokd, прочитайте Getting Started )

...