fun authorizeWith(endpoint: Endpoint, server: String?, callback: (AuthorizationAnswerModel?) -> Unit) {
GlobalScope.launch(Dispatchers.Default) {
try {
…
callback(json)
} catch (e: Exception) {
callback(null)
}
}
}
fun authorize(endpoint: Endpoint, server: String?, callback: (AuthorizationAnswerModel?) -> Unit) {
authorizeWith(endpoint = endpoint, server = server, callback = callback)
}
В Android вызываю
var callback: (AuthorizationAnswerModel?) -> Unit = {}
var model: AuthorizationAnswerModel? = null
AuthorizationClient().authorize(
endpoint = endpoint,
server = serverTextField.text.toString(),
callback = callback
)
callback.invoke(model)
println("CALLBACK: "+callback.toString())
println("MODEL: "+model)
Как заставить ‘ждать’ ответа? callback прилетает секунды через 2
это корутины курильщика, там должен быть suspendCoroutine, чтобы колбеки в suspend функции переделать. Почитай доку про suspendCoroutine
Обсуждают сегодня