title: How to return a single (non-LiveData) object from Room using Coroutines
body: <p>Room executes queries that return <code>LiveData</code> on a background thread automatically. But I want to return a single value that is not wrapped into <code>LiveData</code> (because I don't want live updates).
  How do I implement this using coroutines?</p>
  
  <p>How do I return the <code>Task</code> object from this function?</p>
  
  <pre><code>fun getTask(id: Int): Task {
      viewModelScope.launch {
          repository.getTask(id)
      }
  }
  </code></pre>
  
  <p>This function is inside the ViewModel. It forwards the call down to the DAO:</p>
  
  <pre><code>@Query("SELECT * FROM task_table WHERE id = :id")
  fun getTask(id: Int): Task
  </code></pre>