title: How to iterate over Mono<List<String>> calling Mono returning method
body: <p>I'm attempting to achieve the following in the method below </p>
  
  <blockquote>
    <ol>
    <li>Get All Cars from Dealer X</li>
    <li>Create wrapper object that stores a set of all cars and another set of all manufactures 2a. Populate Cars set with the cars obtained in
    Step 1 </li>
    <li>For each Car get all of their independent manufactures</li>
    <li>Store all obtained manufactures into the wrapper objects manufactures Set</li>
    <li>Return Mono of Car and manufactures </li>
    </ol>
  </blockquote>
  
  <pre><code>Mono&lt;CarAndManufactures&gt; requestCarAndManufactures(Request req) {
  final String dealerId = buildDealerId(req.getDealerRegion(), req.getDealerId());
  final CarAndManufactures CarAndManufactures = new CarAndManufactures();
  return webSocketClient.getCars(dealerId) //note #getCars returns a Mono
      .map(getCarsResponse -&gt; getCarsResponse
        .getResult()
        .stream()
        .map(Car::getId)
        .collect(toSet()))
      .map(carIds -&gt; {
        CarAndManufactures.setCars(carIds);
        return CarAndManufactures;
      })
      .flatMapMany(CarAndManufactures1 -&gt; Flux.fromIterable(CarAndManufactures.getCars().keySet()))
      .collectList()
      .log("Existing cars")
      .flatMap(carIds -&gt; { //This is the problem area
        carIds
            .stream()
            .map(carId -&gt; {
              webSocketClient.getManufactures(carId) //Note getManufactures returns a Mono... This method does look like its ever called
                  .map(getManufactureResponse -&gt; getManufactureResponse
                      .getResult()
                      .stream()
                      .map(Manufacture::getId)
                      .collect(toSet()))
                  .map(ManufactureIds -&gt; {
                    CarAndManufactures.SetManufactures(ManufactureIds); //since the line commented on above is not called the Manufacture Set is empty
                    return CarAndManufactures;
                  });
              return CarAndManufactures;
            });
            return just(CarAndManufactures);
          }
      )
      .log("Car And Manufactures"); 
  </code></pre>
  
  <p>}</p>
  
  <p>The Set of Manufactures is alway empty doesnt look like webSocketClient.getManufactures(carId) is ever called. Thought I might be missing a .subscribe some where but since this is being used by a webflux controller I think no #subscribes are needed anywhere</p>