Шаблон, который вы должны использовать: async/await
.
Он вернет Deferred
из async { }
, который вы можете использовать для вызова await()
.Поскольку buttonChange
, похоже, нужен контекст UI
, возможно, вам также потребуется запустить сопрограммы.
launch(UI) {
try {
val result = async { me.connect("disconnection") }
buttonChange(result.await())
} catch (_: Exception) { }
}
Не следует создавать поток вручную.