I’m wondering if it is possible to put the value of a
Mono as a value into a
Flux just like you could append any object to a list. I know there are some methods you could use but none of them fulfills my exact purpose. What I tried so far:
Flux<T> flux; Mono<T> mono; Flux.merge(flux, mono); // <- returns Flux<Object>
This doesn’t sound too bad but notice that it does not return
Flux<T> as I would need it but
Flux<Object>. Same with
Flux.concat(flux, mono);. The method
Flux.zip(flux, mono); would stop merging as soon as the Mono completes as far as I understand.
Has somebody a solution for this?
I have the method return a Flux of the desired type which in my case was an ‘ExtendedResourceModel’. I create a Mono of this type which gets initialized by another method that I commented out to keep this answer as concise as possible. If a certain condition is met I want to also use a Flux from a different source so I use ‘Flux.concat()’ to put all elements into a single Flux. The ‘concat’-method works by subscribing to the first argument, letting it finish, subscribing to the second one and so on. In case of my condition not being met I just use ‘concat’ again but this time with only the Mono which will put the Mono’s element into a new Flux. This way both cases have the same return type.