Сохранение Webflux в хранилище без использования .block () - PullRequest
0 голосов
/ 09 мая 2019

У меня есть следующий метод в моем сервисе:

override fun enableDisable(id: String, active: Boolean) = tryCatch(
            repository.findById(id).let {
                it.map { p -> p.active = active }; repository.save(it)
            },
            DataNotFound("Data not found"))

У меня появляется следующая ошибка:

Need: Product
Found: Mono<Product>

Если я поставлю:

repository.save(it.block()!!)

Это работает, но я читал, что не рекомендуется использовать .block().Какую альтернативу я могу использовать здесь?

1 Ответ

2 голосов
/ 10 мая 2019

Используйте flatMap для объединения ваших функций:

it.map { product -> product.active = active }.flatMap(repository::save)

...