map函数中的返回值应该是MonoEmpty。
示例:
Mono<Void> empty = Mono.just("ping").map(s-> ????);或者,如果我需要这个功能,模式应该是执行flatMap吗?
Mono<Void> empty = Mono.just("ping").flatMap(s-> Mono.empty());发布于 2019-01-23 12:47:00
如果大多数时候都需要进行转换,但在某些条件下是空的,请使用handle (它能够在不使用flatMap开销的情况下映射到零):
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>):
Mono<String> source = Mono.just("foo");
Mono<Void> emptyWithTypeLoss = source.then();
Mono<String> emptyWithoutTypeLoss = source.ignoreElement();https://stackoverflow.com/questions/54323913
复制相似问题