a中的返回值应该是什么 map 函数be用于生成的单声道 MonoEmpty ?
map
MonoEmpty
例子:
Mono<Void> empty = Mono.just("ping").map(s-> ????);
或者模式应该是做一个 flatMap 如果我需要这个功能?
flatMap
Mono<Void> empty = Mono.just("ping").flatMap(s-> Mono.empty());
如果您需要在大部分时间进行转换,但在某些情况下转换为空,请使用 handle (具有映射到零的能力,而无需 flatMap ):
handle
Mono<String> emptyIfNotPing = Mono.just("ping") .handle((t, sink) -> { if (t.equals("ping")) sink.next("pong"); else sink.complete(); });
如果你 关心元素,只想传播终端信号( onComplete 和 onError ),你可以使用 ignoreElement (维护泛型类型)或 then() (它变成了一个 Mono<Void>
onComplete
onError
ignoreElement
then()
Mono<Void>
Mono<String> source = Mono.just("foo"); Mono<Void> emptyWithTypeLoss = source.then(); Mono<String> emptyWithoutTypeLoss = source.ignoreElement();