4 Ekim 2023 Çarşamba

SpringWebFlux Mono.concatMap metodu

concatMap  vs flatMap
concatMap girdiyi sırayla işler

Örnek
Elimizde şöyle bir kod olsun
void flatMapVsConcatMap() throws InterruptedException {
   Observable.just(5, 2, 4, 1)
    .flatMap(
      second -> Observable.just("Emit delayed with " + second + " second")
          .delay(second, TimeUnit.SECONDS)
    )
    .subscribe(System.out::println, Throwable::printStackTrace );
    Thread.sleep(15_000);
}
Çıktı şöyle. flatMap sırayı korumadı.
Emit delayed with 1 second
Emit delayed with 2 second
Emit delayed with 4 second
Emit delayed with 5 second
Açıklaması şöyle
flatMap tries to start as many possible.
Elimizde şöyle bir kod olsun
void flatMapVsConcatMap() throws InterruptedException {
  Observable.just(5, 2, 4, 1)
    .concatMap(
      second ->
        Observable.just("Emit delayed with " + second + " second")
          .delay(second, TimeUnit.SECONDS)
    )
    subscribe(System.out::println,Throwable::printStackTrace);

  Thread.sleep(15_000);
}
Çıktı şöyle. concatMap sırayı korudu
Emit delayed with 5 second
Emit delayed with 2 second
Emit delayed with 4 second
Emit delayed with 1 second

Hiç yorum yok:

Yorum Gönder