Вот примерный код: я хочу сделать что-то вроде этого -
public Flux<Object2> getSomething(String email) {
method1(email).map(result -> { //method1 returns Mono<Object1>
if(result.id().isEmpty()) {
return method2(email); //method2 returns Flux<Object2>
} else {
return Flux.empty();
}
};
});
Итак, когда method1 возвращает пустой Object1.id (), тогда вызывается только method2. В противном случае верните пустой поток.
Указатели для заметки -
Не доходит до вызова второго метода
Поскольку один метод - Mono, а другой - Flux, существует несоответствие типов, если я напрямую добавляю return в строку 2.
Я пытался с этим в method1:
if(Object1.id().isEmpty()){
throw new IllegalArgumentException;
}
и в приведенном выше фрагменте кода:
try {
method1(email);
} catch(IllegalArgumentException e) {
return method2(email);
}
Здесь никогда не ловится исключение.