小编Tar*_*nko的帖子

如何忽略JobCancellationException?

最近,我将Kotlin Coroutines从实验版升级到1.1.1,并面临job.cancel()新版本工作方式不同的问题。

这是带有实验协同程序的代码:

fun <R : Any, T : Deferred<R>> T.runAsync(
        job: Job,
        onSuccess: (result: R) -> Unit,
        onFailed: (errorMsg: String?) -> Unit) {
    launch(UI, parent = job) {
        try {
            val result = this@runAsync.await()
            onSuccess(result)
        } catch (e: Exception) {
            onFailed(e.message)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是1.1.1:

fun <R : Any, T : Deferred<R>> T.runAsync(
        job: Job,
        onSuccess: (result: R) -> Unit,
        onFailed: (errorMsg: String?) -> Unit) {
    GlobalScope.launch(Dispatchers.Main + job) {
        try {
            val result = withContext(Dispatchers.IO) { …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlinx.coroutines

1
推荐指数
1
解决办法
747
查看次数

标签 统计

android ×1

kotlin ×1

kotlinx.coroutines ×1