抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

协程改造异步回调地狱时的特殊情况

有人问到一些 SDK 封装的接口是异步回调的,无法修改内部的代码,但外面用的是协程,不好操作。实际上这里用 suspendCoroutine 即可。

代码:

private suspend fun test(): Boolean {
    return suspendCoroutine<Boolean> { continuation ->
        kotlin.runCatching { 
            //模拟异步代码块
        }.onSuccess {
            continuation.resume(true)
        }.onFailure {
            continuation.resume(false)
        }.getOrThrow()
    }
}

其余:官方文档

以上。


0条评论

发表评论