title: From Multiple Kotlin Coroutines suspended function to a single synchronous function
body: <p>So, I have multiple <code>suspended</code> functions that looks like this</p>
  
  <pre><code>suspend fun getLatestCampaign(): List&lt;Campaign&gt; {
     return listOf()
  }
  
  suspend fun getRecommendedCampaign(): List&lt;Campaign&gt; {
     return listOf()
  }
  </code></pre>
  
  <p>Since I want to run these function asynchronously, so I did it like this</p>
  
  <pre><code>val recommendedCampaignAsync = async(Dispatchers.IO) { getRecommendedCampaign() }
  val latestCampaignAsync = async(Dispatchers.IO) { getLatestCampaign() }
  </code></pre>
  
  <p>And I also have function that will process the result of these async operations</p>
  
  <pre><code>fun displayCampaigns(campaigns: List&lt;Campaign&gt;) {}
  </code></pre>
  
  <p>What should I do, if I want every time one of these async operation complete, I want to call <code>displayCampaigns</code> and make sure <code>displayCampaigns</code> is executed synchronously.
  So I don't want to wait both of these async operation to complete and then call <code>displayCampaigns</code></p>