how to chain reactive Mono(s) in an if-else scenario

Viewed 519

New to Reactive Java here. Can someone please help with this simple scenario (written in Kotlin):

    fun testReactive(): Int {
      Mono.just("item-exists-in-database")
        .onErrorReturn("item-missing") // if item is not in database an exception will be thrown
        .map { item ->
            if (item == "item-exists-in-database") {
                Mono.just("deleting")
                    .doOnSuccess { println("deleting item") } // <-- this never prints!
            } else {
                Mono.just("ok")
            }
        }.map {
            println("Creating item in database")
            Mono.just("creating item in database")
        }.block()
      return 0
}

Running it produces:

Creating item in database

Why doesn't the line "deleting item" ever print?

1 Answers
Related