Как создать условный цикл с Mono в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как создать условный цикл с Mono в Java?

Сообщение Anonymous »

Мне нужен условный цикл в реактивном конвейере. Пока условие истинно, оно должно продолжать цикл, а как только условие станет ложным, оно должно прекратить цикл и вернуть любое значение, полученное из цикла.
Mono.just(new Pair(record, order))
.flatMap(pair -> handleDelayedRoundNumber()
.flatMap(roundNumber -> handleProofRequest(pair.first(), pair.second())
.doOnSuccess(proof -> new Pair(roundNumber < order.clientMetadata().timeout(), proof))
)
).repeat(result -> result.first() && result.second() != null)
.flatMap(result -> {
if(result.second() == null){
return Mono.empty();
}
return Mono.just(result.second());
})
.flatMap(proof -> doStuffWithProof(proof));

Мне нужно что-то, что ведет себя так. Но я не могу понять, как это сделать.
Я думаю, что идею того, чего я хочу, легче объяснить нереакторным способом
Order order = ...;
Record record = ...;
String proof;
do {
int roundNumber = handleDelayedRoundNumber();
proof = handleProofRequest(record, order);
while(roundNumber < order.clientMetadata().timeout() && proof == null);

doStuffWithProof(proof);


Подробнее здесь: https://stackoverflow.com/questions/791 ... no-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»