= null
                  
                  
                  
                  
                  
                  fun startLoadOnScreen1() {
                  
                  
                      task = async(UI) {
                  
                  
                          doJob()
                  
                  
                      }
                  
                  
                  }
                  
                  
                  
                  
                  
                  fun waitForCompletionOnScreen2() {
                  
                  
                      showProgress()
                  
                  
                  
                  
                  
                      launch(UI) {
                  
                  
                          try {
                  
                  
                              val result = task!!.await()
                  
                  
                              showResult()
                  
                  
                          } catch (e: Exception) {
                  
                  
                              showError()
                  
                  
                          }
                  
                  
                      }
                  
                  
                  }
                  
                  
                
Спасибо, вполне элегантное решение, попробую, а почему в одном случае вы используете async, а в другом launch, разве у них не только разница в возвращаемом объекте ? Но и в принципах работы
а если у меня есть уже Deffered от ретрофита, как мне просто запустить его загрузку, await вызвать ? т.к. сервисы ретрофита возвращают Deffered я нашел специальный адаптер
Обсуждают сегодня