如何使用 Kotlin 协程从延迟的未来创建 Observable

How to create an Observable from a Deferred future using Kotlin 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 连接到反应世界:

rxSingle { deferred.await() }

从那里调用 toObservable() 即可轻松获得 Observable