Команды цепочки реактора - PullRequest
0 голосов
/ 01 ноября 2018

Я практикую Reactor в Spring WebFlux и считаю, что кривая обучения довольно крутая. Все, что я хотел сделать, это что-то вроде:

Данные поступают с контроллера Я делаю запрос для настроек сайта, который возвращает моно. Я делаю запрос для репозитория пользователя (чтобы позже выяснить, был ли пользователь уже зарегистрирован или нет), который возвращает Mono.

Теперь я хочу сделать что-то вроде:

User user = new User();

userRepository.findByUsername(username).flatMap(dbUser -> Mono.error(new UserAlreadyRegisteredException()).switchOnEmpty(settingsRepository.getSettings().flatMap(settings -> validateUser(user,incomingData,settings)).then(userRepository.save(user));

//validateUser is a method which returns Mono<User> preferably with incomingData copied to the User object

Редактировать: проблема заключалась в том, что я сохранял настройки в @PostConstruct и не вызывал подписку.

1 Ответ

0 голосов
/ 01 ноября 2018

Перейдите по следующим ссылкам:

  1. https://projectreactor.io/learn

  2. Я прошел этот урок, когда начал с него: https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro

Это видео, https://youtu.be/Cj4foJzPF80,, в котором Брайан Клозел и Себастьен преодолевают все проблемы, упомянутые в руководстве tech.io. И того, и другого мне было достаточно, чтобы начать. Запустите учебник, прочитайте документацию (она мне очень помогла) и, если она застрянет, обратитесь за помощью к видео. Тем не менее, вы должны увидеть начало видео, где объясняются концепции.

Пройдите через это, а затем дайте нам знать, если у вас все еще есть проблемы.

...