Suspend修飾符
探討背後的原理
創建Coroutine
val suspendFunction = suspend {
println("In Coroutine")
5
}.createCoroutine(object : Continuation<Int>{
override val context: CoroutineContext
get() = EmptyCoroutineContext
override fun resumeWith(result: Result<Int>) {
println("Coroutine End: ${result.getOrThrow()}")
}
})public fun <T> (suspend () -> T).createCoroutine(
completion: Continuation<T>
): Continuation<Unit>