我的理解是,当一个Mono被订阅时,第一个信号是doOnNext,然后是doOnSuccess,然后是doOnTerminate,但是当我运行下面的代码时,这些方法的执行顺序是它们被链接的顺序,即doOnTerminate、doOnSuccess、doOnNext。如果我改变链式的顺序,顺序也会变。
代码语言:javascript复制@Test
public void doOnsMono(){
Mono
mono.doOnSubscribe(s -> System.out.println("Just got subscribed") )
.doOnTerminate(() -> System.out.println("Termination happens at the end"))
.doOnSuccess(s -> System.out.println("I am successfull " + s))
.doOnNext(s -> System.out.println("next next next" + s))
.subscribe(s -> System.out.println("Subscribe" + s));
}输出是如此的刚刚被订阅
终止发生在最后
我是成功的ABC
下一个nextABC
SubscribeABC
有谁能解释一下我的理解中的这种行为或差距。