使用WebFlux与Reactor-当流为 Empty 时的注意事项

注意

empty会造成之后的所有转换操作不执行

Mono<T>的计算结果为empty时,在它之后添加的多个转换操作都不会被触发执行。有一些方法可以解决这个问题:

  1. 使用Optional<T>来包裹可能为空的数据类型。
1
Mono<Optional<User>> findById(String userId);
  1. 使用.switchIfEmpty.defaultIfEmpty来将empty转换成其它有值的结果。
1
2
3
4
Mono<User> findById(String userId);

findById(userId)
.switchIfEmpty(Mono.
分享到