这是因为你实际上是在打破这条链.你在订阅之前什么都不会发生,但你需要保持链条的完好无损.
您正在做的是首先初始化您的Mono
.
那么您就是在声明一个react 流.
然后在最后一行,您实际上订阅了原始的Mono
,而不是您预期的react 流.
这就是它应该是什么样子的.
// Here you declare your mono
Mono<String> mono = Mono.just("test");
// Here you add operators which will return
//a new Mono with your operators attached
Mono<String> stringMono = mono.doOnSubscribe(s -> System.out.println("Just got subscribed" + s))
.doOnNext(s -> System.out.println("next next next" + s))
.doOnSuccess(s -> System.out.println("I am successfull" + s));
// Subscribe to the new Mono
stringMono.subscribe(s -> System.out.println("Subscribe " + s));
或者稍微简化一下.
Mono.just("test")
.doOnSubscribe(s -> System.out.println("Just got subscribed " + s))
.doOnNext(s -> System.out.println("next next next " + s))
.doOnSuccess(s -> System.out.println("I am successfull " + s))
.subscribe(s -> System.out.println("Subscribe " + s));
输出:
Just got subscribed reactor.core.publisher.Operators$ScalarSubscription@5524cca1
next next next test
I am successfull test
Subscribe test