java - 在 Kotlin 中从 Observable 转换为 Mono
问题描述
试图插入 couchbase 并且具有可观察的返回类型但想要单声道,因此这样做了。它正在编译,但在运行时它永远卡在转换阶段(即 Mono.from { obs })。
fun saveScopeId(scopeId: ScopeId): Mono<ScopeId> {
val obs = scopeRepository.couchbaseOperations.insert(scopeId)
return Mono.from<ScopeId> { obs }
}
解决方案
Observable 可以生成多个值,但是如果您可以保证它将是一个项目(我假设这就是您要在Mono
此处使用的原因),则可以Mono.fromDirect
这样使用:
Mono.fromDirect(yourObservable.toFlowable(BackpressureStrategy.BUFFER));
正如您在示例中看到的,使用了toFlowable
方法。
您应该看到其他背压策略: 这里
推荐阅读
- wordpress - 忽略 wordpress 的媒体文件夹
- arraylist - 将文件用作数组并将对象存储为Jenkinsfile中的变量
- sql - SQL - 删除重复行
- c++ - 如何在 c++ 类中使用 add_definititions() 变量?
- php - 将数组字符串转换为数组
- firebase - 使用不同的数据进行生产和开发 Firebase 站点
- sql - 使用具有不同 GROUP BY 的聚合函数后如何摆脱 JOIN 的重复结果
- cmd - 如何使用 CMD 重命名批量文件
- java - Java Cassandra 4.x 映射器可以将 Enum 转换为 int 吗?
- hyperledger-fabric - 在 Hyperledger Fabric 中使用 Idemix 对链代码语言是否有任何限制?