[возможно, дубликат, но я пока не нашел]
Рассмотрим этот код:
Mono.just(myVar)
.flatMap(MyClass::heavyOperation)
.flatMap(MyClass::anotherHeavyOperation)
.flatMap(res -> doSomething(res, MyClass.heavyOperation(myVar)));
Я не хочу звонить дважды MyClass.heavyOperation(myVar)
с одним и тем же входом ради производительности.
Как я могу повторно использовать результат второй операции в четвертой?
Я хочу сделать что-то вроде этого, что запрещено:
Object myObj;
Mono.just(myVar)
.flatMap(var -> {
myObj = MyClass.heavyOperation(var);
return myObj;
})
.flatMap(MyClass::anotherHeavyOperation)
.flatMap(res -> doSomething(res, myObj));