【问题标题】:How to pass parameter in onErrorResume from previous flatMap in Java reactor如何在 Java 反应器中从以前的 flatMap 中传递 onErrorResume 参数
【发布时间】:2021-04-30 20:33:55
【问题描述】:

我有以下代码

.map(agc -> new cTaskServiceCommand(or, agc, request))
.flatMap(command -> cTaskService.cTask(command))
.flatMapMany(event -> Mono.just(event).concatWith(Mono.justOrEmpty(event.getThrowable()).flatMap(Mono::error)))
.cast(orEvent.class)
.onErrorResume(throwable -> myFactory.createorEvent(or, throwable))

但我想将一个参数从命令传递给 onErrorResume,如下所示

.onErrorResume(throwable -> myFactory.createorEvent(or, throwable, command.getName()))

我怎样才能做到这一点。需要将参数从之前的 flatMap 对象传递给 onErrorResume。

【问题讨论】:

    标签: java reactor


    【解决方案1】:

    试图查看文档,但没有发现任何明显合适的内容。只能建议将这种包装作为一种解决方法:

    .map(agc -> new cTaskServiceCommand(or, agc, request))
    .flatMap(command -> cTaskService.cTask(command)
        .flatMapMany(event -> Mono.just(event).concatWith(Mono.justOrEmpty(event.getThrowable()).flatMap(Mono::error)))
        .cast(orEvent.class)
        .onErrorResume(throwable -> myFactory.createorEvent(or, throwable, command.getName()))
    )
    

    【讨论】:

      猜你喜欢
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 2018-07-15
      相关资源
      最近更新 更多