pull/1625/head
kunfei 3 years ago
parent 1b2d1d9005
commit 27a79ab432
  1. 10
      app/src/main/java/io/legado/app/help/coroutine/Coroutine.kt

@ -4,7 +4,9 @@ import kotlinx.coroutines.*
import timber.log.Timber
import kotlin.coroutines.CoroutineContext
/**
* 链式协程
*/
@Suppress("unused")
class Coroutine<T>(
val scope: CoroutineScope,
@ -146,21 +148,17 @@ class Coroutine<T>(
} catch (e: Throwable) {
Timber.e(e)
val consume: Boolean = errorReturn?.value?.let { value ->
if (isActive) {
success?.let { dispatchCallback(this, value, it) }
}
true
} ?: false
if (!consume && isActive) {
if (!consume) {
error?.let { dispatchCallback(this, e, it) }
}
} finally {
if (isActive) {
finally?.let { dispatchVoidCallback(this, it) }
}
}
}
}
private suspend inline fun dispatchVoidCallback(scope: CoroutineScope, callback: VoidCallback) {
if (null == callback.context) {

Loading…
Cancel
Save