Suspend Coroutines#39;s execution to wait for callback(暂停执行协程以等待回调)
问题描述
最近,我在我的项目中应用了Cooutine,看起来一切都很好,但今天我遇到了一个问题[使用Coroutine+Retrofit将文件/图像上传到服务器][1] Cooutine+Retrofit上传文件似乎没有解决方案,所以必须使用回调进行改造。
我的问题是:如何挂起协程的执行以等待Retrofit的回调?
谢谢你兄弟。 [1]:Upload file/image into server using Coroutine + Retrofit
推荐答案
您可以使用suspendCoroutine
或suspendCancellableCoroutine
处理回调:
suspendCoroutine
挂起它执行的协程,直到我们决定通过调用适当的方法继续-Continuation.resume...
。suspendCoroutine
主要用于我们有一些带有回调的旧代码。
还有suspendCancellableCoroutine
生成器函数,它的行为类似于suspendCoroutine
,但有额外的功能-提供CancellableContinuation
对块的实现。
这篇关于暂停执行协程以等待回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!