У нас есть vertx ver vert, которая получает идентификатор и использует его, чтобы увидеть, существует ли объект с идентификатором в базе данных.Он содержит следующую логику:
if (itemFound) {
e.onNext(item_which_was_found)
}
else {
e.onNext(null);
}
Другая вертикаль имеет Observable, которая обрабатывает список идентификаторов.Он использует rxSend
для передачи каждого идентификатора в списке первой вертикали для поиска в базе данных:
Observable<Object> observable = ...
observable.flatMapSingle(id -> {
return rxSend(VERTICLE_1_ADDRESS, id);
})
.flatMapSingle ( i ->
{
// Logic dependent on if item was found
)
.subscribe();
С учетом вышеизложенного легко обрабатывать случаи, когда был найден объект, связанный с идентификатором.в базе данных, потому что первый vertcle в onNext()
возвращает сущность.Вопрос касается второго случая, когда сущности не существует и первая вертикаль возвращает onNext(null)
.В таком случае, как можно извлечь во втором flatMapSingle
элемент в наблюдаемой, который в настоящее время обрабатывается (то есть id
, который не имеет ассоциированного объекта базы данных)?Или есть лучший способ структурировать код?
Спасибо