我正在尝试与上下文相关的各种功能。我要添加一个字符串,然后要删除或替换它,但是无论如何,输出仍然是第一个输入的字符串。
return Mono
.subscriberContext()
.doOnNext(ctx -> System.out.println(ctx.get(String.class)))
.subscriberContext(context -> context.put(String.class, "a cat"))
.subscriberContext(context -> context.delete(String.class)) // no effect
.subscriberContext(context -> context.put(String.class, "a dog")) // no effect
.flatMap(whatever -> AnimalServiceService.createRandomAnimal()) ;
我不确定我是否完全了解订阅者上下文的流程。为什么doOnNext()
首先在context.put()
之前?在我看来,在此流程中,它将首先请求值,然后将其放入