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