Mono.empty()会直接跳过defalut 等,直接complete,因为 Mono.empty()返回的是一个状态为complete的Mono对象。
示例:
Flux.just(1,2,3,4,5,6,7,8)
.flatmap(d->d%2==0? Mono.empty():Mono.just(d))
.defaultIfEmpty(100)
.subscribe(d->System.out.println(d),e->System.println(e),()->System.out.println("complete"))
输出
1
3
5
7
complete
Mono<Void>代码示例:
//添加用户
@Override
public Mono<Void> saveUserInfo(Mono<User> userMono) {
return userMono.doOnNext(person -> {
//向map集合里面放值
int id = users.size()+1;
users.put(id,person);
}).thenEmpty(Mono.empty());
}