У меня есть интересная проблема, которую я не знаю, как решить без вызова block()
метода.
мой метод получает пользователя в качестве аргумента.
вызывает внешнюю службу и получает Mono
, если в Mono нет ошибки и user.getDepartment().startsWith("Development")
Я хочу добавить это в поток
Флюс должен быть результатом моего метода
На данный момент, к сожалению, я должен инициализировать Flux из списка перед вызовом block()
-метода для Mono, который я получаю:
Flux<User> getUsers(User user) {
List<Users> developmentUsers = new ArrayList<User>();
while (user.containsManager()) {
val resultUser = externalUserServiceClient.getManager(user).block(); //externalUserServiceClient.getManager(user) should return a Mono<User>
if (resultUser.getDepartment().startsWith("Development"))
developemtnUsers.add(resultUser);
user = resultUser;
}
return Flux.fromIterable(developmentUsers);
}
Я уверен, что должен быть способ не прерывать цепочку асинхронных процессов. Ты знаешь как?