25 Temmuz 2021 Pazar

SpringWebFlux Mono.switchIfEmpty metodu

Giriş
Flux.switchIfEmpty metodu ile kardeştir.

Açıklaması şöyle. Mono boş ise switchIfEmpty() ile belirtilen sonucu döner
we can emit an error signal when our mono has no values to emit.
Örnek
Şöyle yaparız
Mono<String> publisher = Mono.just("My first publisher");
publisher
  .filter(value -> value.equals("This is not my first publisher"))
  .switchIfEmpty(Mono.error(new RuntimeException("Something went wrong")))
  .subscribe(new MySubscriber());
Örnek
Şöyle yaparız.
Mono.just(new Employee().setName("Kill"))
    .switchIfEmpty(Mono.defer(() -> Mono.just(new Employee("Bill"))))
    .block()
    .getName();
Örnek
Şöyle yaparız
@RestController
@RequestMapping(value = "/posts")
class PostController {
  private final PostRepository posts;

  @GetMapping("/{id}")
  public Mono<Post> get(@PathVariable("id") Long id) {
    return Mono.just(id)
      .flatMap(posts::findById)
      .switchIfEmpty(Mono.error(new PostNotFoundException(id)));
  }
}

Hiç yorum yok:

Yorum Gönder