title: Emit LiveData to update UI between subsequent suspend method calls
body: <p>I am trying to update the UI in between the suspend method calls when I get results from them. For example, here is my ViewModel class. Methods a(), b() and c() are suspend methods.</p>
  
  <pre><code>class MainViewModel : ViewModel() {
  
      lateinit var userLiveData: LiveData&lt;String&gt;
      var repo = MainRepo()
  
       fun startTest() {
            userLiveData = liveData {
               var a =  repo.a()
               System.out.println("@@@@@@@@ $a")
               emit(a)
               var b = repo.b(a)
               System.out.println("@@@@@@@@ $b")
               emit(b)
               var c = repo.c(b)
               System.out.println("@@@@@@@@ $c")
               emit(c)
           }
      }
  }
  </code></pre>
  
  <p>and this is my Activity class, where I am observing the LiveData</p>
  
  <pre><code>viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
          viewModel.startTest()
          viewModel.userLiveData.observe(this, Observer {
              text.text = it
          })
  </code></pre>
  
  <p>and Repo class</p>
  
  <pre><code>class MainRepo {
  
      suspend fun a(): String{
          delay(1000)
          return "A"
      }
      suspend fun b(a: String): String{
          delay(5000)
          return a + "B"
      }
      suspend fun c(b: String): String{
          return b + "-C"
      }
  }
  </code></pre>
  
  <p>My Question is, how can I update the UI with results after I call <code>repo.a()</code> or <code>repo.b()</code> or <code>repo.c()</code>.
  Thanks in advance.</p>