首页 > 解决方案 > 关于kotlin协程基础Api的问题

问题描述

Kotlin 可以使用 createCoroutine() 函数来创建协程。在这个功能的描述中,我一句话都看不懂。

要开始执行创建的协程,resume(Unit)请在返回的 [Continuation] 实例上调用。

我不知道我的理解是否正确。我的想法是,在调用 resume() 函数之前,协程体并没有被执行,而只存在于 Continuation 对象中。调用 resume() 函数后,执行挂起 lambda 表达式并返回结果。

这是正确的理解吗?

非常感谢您的回答

标签: kotlin

解决方案


我相信这是正确的。lambda 的结果不会返回给您,而是传递给下一个延续(如果指定)。

createCoroutine()并且Continuation是一个非常低级的东西,通常你不直接使用它们。从协程上下文之外启动协程有一些高级别的选择。如果您不确定是否真的需要使用createCoroutine(),那么您可能正在寻找:runBlocking()CoroutineScope()然后launch()GlobalScope.launch()(但请阅读GlobalScope注释)。


推荐阅读