问题标签 [rx-scala]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Observable 占用无限量的内存?
由于每个Observable
都有一个可以追溯到第一个发出的值的缓存,因此用于存储此缓存的内存量似乎没有限制。
我已经用以下代码测试了这个假设:
事实上,在应用程序运行的整个 10 分钟内,内存使用量一直在稳步上升。
我的问题是是否可以在Observable
没有缓存的情况下实例化一个特殊的,或者指示它在某个级别上限制它的缓存?
scala - Scalaz 与 ReactiveX
我已经在 Java 中使用 ReactiveX 扩展工作了几年,但现在我转向 scala,并且我看到很多人使用扩展 ScalaZ 在 Scala 中执行更多功能性编程。
使用 ScalaZ 扩展是否有任何区别,或者只是将 reactiveX 调整到我所做的 Scala 并且我知道与 Scala 配合得很好?
在阅读了这篇博客https://medium.com/@luijar/the-observable-disguised-as-an-io-monad-c89042aa8f31之后,我虽然在 Scalaz 中作为 IO monad 工作
问候。
java - 在 RxScala 应用程序中调用 Java 库(rxjava-extras)代码
我在 RxScala 应用程序中使用来自 Kafka 的消息,并希望在动态大小的滑动窗口中处理消息,即我想对在同一 2 秒内创建的所有消息进行分组。据我所知,RxScala 不提供这种运算符。这个存储库 ( https://github.com/davidmoten/rxjava-extras ) 确实提供了一个“toListWhile”函数,但采用 Java 代码的形式。
调用所需函数的简化尝试失败:
这是我得到的错误:
有人可以帮我从 Scala 调用该代码吗?谢谢!
解决方案
scala - RxScala“压缩”多个 Observable
在 RxScala 中如何“压缩”超过 2 个 Observable?
“zip”与 2 个 Observable 完美搭配
我们如何“压缩”超过 2 个 Observable?
scala - 在 RxScala 中管理订阅的最佳实践是什么?
我想控制我的订阅范围,甚至在存在异常的情况下,同时避免对我的订阅使用var
在 Rx/F# 我会这样做
并且订阅在离开范围时会自动释放。
Scala 的最佳实践是什么?
scala - 为什么 rxScala Observable zipWith 评估为 Observable [Nothing]
我尝试了以下方法:
当我显示结果类型时,我看到:
我试图进入一个Observable[Int, Int]
,我做错了什么?
scala - 仅调用 onComplete 时映射 scala rx observables
我正在使用 scala observables 从 couchbase 获取项目,然后我使用 map、flatMap、zip 来转换结果。问题是,如果 couchbase 中不存在某个项目,那么例如,.zip
它不会仅调用 onComplete。例子:
所以我想要:
- 返回 k -> v 的映射
- 我让 .zip 将 k 耦合到返回的 v (我希望 v 类似于
None
if 不存在。 - 我看到如果 db 中不存在任何项目,则根本不调用 zip。
在运行上面的代码后,我想到了扫描ids
输入参数,并为每个没有用 value 压缩的参数添加一个 id 到它的值,但这就像添加另一个流,我希望 zip 处理现有和不存在的行。
我该如何处理?如何.zip
处理现有行和非现有行?
scala - scala observable 将 observable 与没有中间数据结构更新的序列统一起来
我有一个代码,它调用 couchbase 来获取一些行,如下所示:
如果我有 1,2,3,4,5,6 作为输入行键并且数据库中只存在第 1,2,3 行,那么 observable 只会收到大约 1,2,3 的通知。
然而,我的要求是我返回一个 1、2、3 为真(存在于数据库中)和 4、5、6 为假的地图(意味着数据库中不存在)。我设法用 scala observable 做到了这一点,但是我使用中间地图数据结构来返回包含所有 id 的总地图。下面是一个模拟我的问题的示例代码..
无论如何要在没有中间映射的情况下做到这一点(不填充中间数据结构,但只能通过操纵流)?看起来不干净!!. 谢谢。
mongodb - Observable:如果发出少于 X 个项目,则切换
我有一个可观察对象 obs1、obs2、obs3、...、
他们每个人都可以发出许多项目(来自 mongodb 数据库),我只对前 N 个项目感兴趣。我想确保仅在需要时才执行对我的 observables 的查询。换句话说,例如,如果 obs1 产生的结果多于 N,则 obs2 后面的查询不应该运行,等等。
如果我使用 concat: Observable(obs1, obs2, obs3, ...).concat,所有查询都可以在 mongodb 中并行运行
基本上,我正在寻找类似 obs1.switchIfX(obs2).switchIfX(obs3) 的操作.....
其中 X:当前 observable 发出少于 N 个项目。
知道如何以 rxscala 样式实现此要求吗?
mongodb - 如何在 RxJava/RxScala 中缓存 observable
我有一个 REST API,它使用基于 RxScala 的反应式 scala 驱动程序调用 mongodb。
在我的 API 控制器或服务层中,我需要使用缓存来避免使用 hazelcast(或任何其他缓存工具)调用 mongodb
我所有的服务都是异步的并且只返回 observable,知道如何使用 observable 实现缓存吗?