Мне нужен условный цикл в реактивном конвейере. Пока условие истинно, оно должно продолжать цикл, а как только условие станет ложным, оно должно прекратить цикл и вернуть любое значение, полученное из цикла.
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
Как создать условный цикл с Mono в Java? ⇐ JAVA
Программисты JAVA общаются здесь
1731018535
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);
Подробнее здесь: [url]https://stackoverflow.com/questions/79165951/how-to-create-a-conditional-loop-with-mono-in-java[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия