假设您有Mono<Integer> someIntegerSource = Mono.just(5)
,并且想要将其分配给变量。
这些代码段之间是否有区别?
案例1:doOnSuccess
someIntegerSource.doOnSuccess(number -> this.myNumber = number)
案例2:doOnNext
someIntegerSource.doOnNext(number -> this.myNumber = number)
情况3:doOnSuccess +然后(因为我希望分配完成后才能发出单声道)
someIntegerSource.doOnSuccess(number -> this.myNumber = number).then()
答案 0 :(得分:3)
阅读类Mono
的文档并查看图表。他们对行为的解释很清楚。几乎没有明显的差异,但仍然是:
Mono::doOnNext
在成功发送数据 时触发。Mono::doOnSuccess
在Mono
成功完成成功时触发-结果是T
或null
。Mono::then
作为方法链的结尾,在完成和错误信号上返回Mono<Void>
。
Mono<Void>
变为Mono<T>
的原因。请注意,上述两种方法不会丢弃有效载荷。