#java #spring-webflux #project-reactor
Вопрос:
я только что начал свое путешествие по реактору и заблокирован при последующей реализации.
Listlt;Integergt; l = Arrays.asList(1, 2, 3, 4); Integer firstValuePresent = 0; for (int i = 0; i lt; l.size(); i ) { x = checkDb(l.get(i));//db or any io call if (x.isPresent())//check for the first available value in db { firstValuePresent = l.get(i); break; } } //do something with firstValuePresent
как я могу так поступить в случае с реактором. Я подозреваю, что «бери или бери» может помочь, но не знаю как. Помощь ценится
Комментарии:
1. Обратите внимание, что я хочу последовательно проверять бд на наличие значений.
Ответ №1:
Вы можете попробовать это двумя операторами:
filter(Predicatelt;? super Tgt; p)
— Оцените каждое исходное значение по заданному предикату.next()
— Излучайте только первый элемент, испускаемый этим потоком, в новый Моно.
подобный этому:
Flux.just(1,2,3,4).filter(i -gt; checkDb(i).isPresent()).next();