我有一个到目前为止我无法解决的问题我是 RxKotlin 的新手,所以它可能很容易。请看一下代码:
override fun infos(): Stream<Info> =
client.infoAboutItem(identifier)
.map {
val itemId = it.itemId ?: ""
val item = client.itemForId(itemId)
ClientInfo(client, it, source, item) as Info
}
.let { AccessStream(it) }
其中stream是我们自制的集合。Map 是一种允许您遍历该集合中的每个项目的方法。
这里的问题是
client.itemForId(itemId)
是一个 http 调用,它返回一个不理想的 Single。
我想在 map 中创建一个异步调用,该调用将返回 Item 而不是 Single,然后将其传递给 ClientInfo。到目前为止,我尝试过的是在地图内使用订阅并使用 blockingGet() 方法,但这会阻塞主线程,即使我在不同的线程上观察和订阅
所以它涉及对集合中的每一件事进行异步调用。
感谢帮助