【问题标题】:How can I get the context in doFinally or doOnCancel with reactor?如何使用反应器获取 doFinally 或 doOnCancel 中的上下文?
【发布时间】:2020-10-06 14:22:16
【问题描述】:

我正在尝试获取上下文中的值,但我不知道该怎么做,有什么想法吗?例如:

 return mono
        .doFinally(signalType -> how??? )
        .doOnEach(signal -> { 
               ... signal.getContext();
               ...
            }) -> is ok I got the context
        .subscriberContext(ctx -> ctx.put("key", "foo"));

【问题讨论】:

    标签: java java-8 spring-webflux project-reactor reactive


    【解决方案1】:

    考虑使用Mono#deferWithContext

    return Mono
        .deferWithContext(ctx -> {
            mono.doFinally(signalType -> handleSignal(ctx, signalType))
                .doOnEach(...)
        })
        // later...
        .subscriberContext(ctx -> ctx.put("key", "foo"));
    

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2021-02-03
      相关资源
      最近更新 更多