title: How to manipulate object coming from a Flux<Object> with a value coming from a method emitting Mono<Items> in non-blocking way?
body: <p>I am trying to manipulate my objects received from Flux with data received from a Mono where the methods emitting the Flux of object and Mono of items are both different API calls. The problem is, I don't have control over the threads and the items received from the Mono are never assigned to my object unless I intentionally block() that thread. Kindly suggest if any non-blocking way possible for this scenario.</p>
  
  <p>I have also looked into Schedulers, subscribeOn, publishOn but unable to figure out the pipeline.</p>
  
  <pre><code>public Flux&lt;Object&gt; test {
  
   method1().map(obj -&gt; {
          if (obj.getTotalItems() &gt; 20) {
              obj.setItems(method2(obj).block());
          }
          return obj;
    });
  }
  </code></pre>
  
  <p>Here method1 is emitting  Flux of objects received from API hit.</p>
  
  <p>And method2 is emitting a list of items fetched from another API hit.</p>
  
  <p>How can I make this whole flow non-blocking?</p>