title: Project Reactor conditional execution
body: <p>I have an object to save (to MongoDB), but before it I need to check if some conditions are true.</p>
  
  <p>Object contains IDs to other objects. It looks like</p>
  
  <pre><code>"object": {
     "id": "123",
     "subobject1": { "id": "1" },
     "subobject2": { "id": "2" }
  }
  </code></pre>
  
  <p>Subobjects contain only id, other info is located in other collection, so I have to check is the information exist.</p>
  
  <p>In block-style I can do something like</p>
  
  <pre><code>    if (!languageRepository.exists(Example.of(wordSet.getNativeLanguage())).block()) {
          throw new RuntimeException("Native language doesn't exist");
      }
  
      if (!languageRepository.exists(Example.of(wordSet.getTargetLanguage())).block()) {
          throw new RuntimeException("Target language doesn't exist");
      }
  </code></pre>
  
  <p>and only then I can save my object</p>
  
  <pre><code>return wordSetRepository.save(wordSet);
  </code></pre>
  
  <p>How can I do it in "reactive" style without blocking?</p>