首页 > 解决方案 > 如何使用反应式方法在多次操作后保存获得的值

问题描述

我想知道使用正确的反应方法处理 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. 我需要转换价值并做一些工作并且得到不是空的结果,否则异常
  2. 在我需要处理异常之后,如果(1)抛出一些东西
  3. 如果(1)毫无例外地完成,我应该保存原始对象。

这是最好的方法吗?或者也许我应该使用 subcribeContext 例如?

非常感谢您的帮助!

标签: javarx-javareactor

解决方案


推荐阅读