Callback => Coroutine,使用Coroutin
interface CoroutineCallback {
fun onSuccess(num: Int)
fun onFailure(e: Exception)
}
object CoroutineDemoUtils {
fun getDemoData(callback: CoroutineCallback) {
val num = Random.nextInt(0, 9)
if (num >= 5) callback.onSuccess(num)
else callback.onFailure(Exception("number > 5"))
}
}
suspend fun getCoroutineDemoData(): Int =
suspendCancellableCoroutine {
CoroutineDemoUtils.getDemoData(object : CoroutineCallback {
override fun onSuccess(num: Int) {
it.resume(num)
}
override fun onFailure(e: Exception) {
it.resumeWithException(e)
}
})
}
本文标题:Callback => Coroutine,使用Coroutin
本文链接:https://www.haomeiwen.com/subject/uzmkcltx.html
网友评论