java - 如何使用反应式方法在多次操作后保存获得的值
问题描述
我想知道使用正确的反应方法处理 Mono 或 Flux 的最佳方法。
经过几次操作后,我想从 Mono 获取初始值。例如:
public Mono<SomeObject> test(Mono<Object> object) {
return object
.map(this::buildRequestFromObject)
.flatMap(this::sendRequest)
.flatMap(this::anotherUsefulWorkWithReturnImpotant) (1)
.then(object) <-- is it okay???
.onErrorResume(this::handleExceptionAndDoSomeWork) (2)
.doOnSuccess(object-> saveThisObject(object)) (3)
.then();
}
- 我需要转换价值并做一些工作并且得到不是空的结果,否则异常
- 在我需要处理异常之后,如果(1)抛出一些东西
- 如果(1)毫无例外地完成,我应该保存原始对象。
这是最好的方法吗?或者也许我应该使用 subcribeContext 例如?
非常感谢您的帮助!