kotlin - 如何使用 Kotlin 协程从 Deferred future 创建 Observable

标签 kotlin rx-java observable kotlinx.coroutines

我正在尝试使用带有协程的 Futures 创建一个 Observable。

这是我尝试过的:

private fun getHelloObservable(): Observable<String>{
        val deferred = GlobalScope.async {
            "Hello"
        }

        return Observable.just(deferred.await())
    }

但我收到以下错误:

Suspend function 'await' should be called only from a coroutine or another suspend function.

有办法做到这一点吗?

最佳答案

您可以使用 kotlinx-coroutines-rx2 来桥接响应式(Reactive)世界:

rxSingle { deferred.await() }

从这里开始,只需调用 toObservable() 即可轻松获取 Observable

关于kotlin - 如何使用 Kotlin 协程从 Deferred future 创建 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210119/

相关文章:

android - Kotlin 错误 - 委托(delegate)调用链中有一个循环

spring-boot - 从命令行运行gradle时如何执行并显示友好的测试输出

Angular 6 - rxjs 管道不适用于 valueChanges

javascript - RxJS:单击后在持续时间内禁用刷新按钮

swift - RxSwift - 谁是观察者?

android - 在 Mockito 中使用访问器模拟 kotlin 属性

android - "only const val can be used in constant expressions"编译时错误 Dagger2 Kotlin

android - 订阅的结果没有在 rxjava 上使用

java - RxJava 过滤后获取下一项

java - 如何使用 RxJava2 将多个单词组合成一个句子?