Home > other >  Function block not getting called in webflux?
Function block not getting called in webflux?

Time:08-09

I am trying to map through a mono and return a value from its field but that block is not getting called for some reason? I am trying to return a string from the method, I wonder if that is where I am going wrong and if it should be something else?

public String function getId(String name, Flux<Shift> shifts){
Mono<Shift> shift= shifts.filter(s-> s.getName().equals(name)).singleOrEmpty();

shift.map(u-> { 
   System.out.println("gets to here");

   if(u.getId()!=null){
      return u.getId()
   }

   return null;

   })

return null;
}

I dont see the print statement which means that bit of the code is not reached. Any help would be appreciated...

CodePudding user response:

You are configuring the reactor, but not executing it.

If this is the end of the reactive part, you can change it to

return shift.map(u-> { 
   System.out.println("gets to here");

   if(u.getId()!=null){
      return u.getId()
   }

   return null;

   })
   .block();

Otherwise, consider changing the return type of the method to Mono<String>

  • Related