Convert from Flux to Mono

Instead of take(1), you could use next().

This will transform the Flux into a valued Mono by taking the first emitted item, or an empty Mono if the Flux is empty itself.


Here is a list:

  • Flux#single will work if there is one element from Flux. Eg: flux.take(1).single();

  • Flux#next will get you the first element. Eg: flux.next();

  • Flux#last for last element. Eg: flux.last();

  • Flux#singleOrEmpty is similar to Optional. Eg: flux.take(0).singleOrEmpty();

  • Flux#collect, it depends on use case.

      flux.collect(Collectors.reducing((i1, i2) -> i1))
          .map(op -> op.get());
    
  • Flux#elementAt for i'th index. Eg: flux.elementAt(1);

  • Flux#shareNext for first found element. flux.shareNext();

  • Flux#reduce for reduction op. Eg: flux.reduce((i1,i2) -> i1);


Or,you could use single() on the filtered Flux