问题标签 [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.

0 投票
1 回答
357 浏览

scala - Observable 占用无限量的内存?

由于每个Observable都有一个可以追溯到第一个发出的值的缓存,因此用于存储此缓存的内存量似乎没有限制。

我已经用以下代码测试了这个假设:

事实上,在应用程序运行的整个 10 分钟内,内存使用量一直在稳步上升。


我的问题是是否可以在Observable没有缓存的情况下实例化一个特殊的,或者指示它在某个级别上限制它的缓存?

0 投票
1 回答
217 浏览

scala - Scalaz 与 ReactiveX

我已经在 J​​ava 中使用 ReactiveX 扩展工作了几年,但现在我转向 scala,并且我看到很多人使用扩展 ScalaZ 在 Scala 中执行更多功能性编程。

使用 ScalaZ 扩展是否有任何区别,或者只是将 reactiveX 调整到我所做的 Scala 并且我知道与 Scala 配合得很好?

在阅读了这篇博客https://medium.com/@luijar/the-observable-disguised-as-an-io-monad-c89042aa8f31之后,我虽然在 Scalaz 中作为 IO monad 工作

问候。

0 投票
1 回答
86 浏览

java - 在 RxScala 应用程序中调用 Java 库(rxjava-extras)代码

我在 RxScala 应用程序中使用来自 Kafka 的消息,并希望在动态大小的滑动窗口中处理消息,即我想对在同一 2 秒内创建的所有消息进行分组。据我所知,RxScala 不提供这种运算符。这个存储库 ( https://github.com/davidmoten/rxjava-extras ) 确实提供了一个“toListWhile”函数,但采用 Java 代码的形式。

调用所需函数的简化尝试失败:

这是我得到的错误:

有人可以帮我从 Scala 调用该代码吗?谢谢!

解决方案

0 投票
3 回答
172 浏览

scala - RxScala“压缩”多个 Observable

在 RxScala 中如何“压缩”超过 2 个 Observable?

“zip”与 2 个 Observable 完美搭配

我们如何“压缩”超过 2 个 Observable?

0 投票
1 回答
54 浏览

scala - 在 RxScala 中管理订阅的最佳实践是什么?

我想控制我的订阅范围,甚至在存在异常的情况下,同时避免对我的订阅使用var

在 Rx/F# 我会这样做

并且订阅在离开范围时会自动释放。

Scala 的最佳实践是什么?

0 投票
1 回答
47 浏览

scala - 为什么 rxScala Observable zipWith 评估为 Observable [Nothing]

我尝试了以下方法:

当我显示结果类型时,我看到:

我试图进入一个Observable[Int, Int],我做错了什么?

0 投票
1 回答
95 浏览

scala - 仅调用 onComplete 时映射 scala rx observables

我正在使用 scala observables 从 couchbase 获取项目,然后我使用 map、flatMap、zip 来转换结果。问题是,如果 couchbase 中不存在某个项目,那么例如,.zip它不会仅调用 onComplete。例子:

所以我想要:

  1. 返回 k -> v 的映射
  2. 我让 .zip 将 k 耦合到返回的 v (我希望 v 类似于Noneif 不存在。
  3. 我看到如果 db 中不存在任何项目,则根本不调用 zip。

在运行上面的代码后,我想到了扫描ids输入参数,并为每个没有用 value 压缩的参数添加一个 id 到它的值,但这就像添加另一个流,我希望 zip 处理现有和不存在的行。

我该如何处理?如何.zip处理现有行和非现有行?

0 投票
3 回答
428 浏览

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 的总地图。下面是一个模拟我的问题的示例代码..

无论如何要在没有中间映射的情况下做到这一点(不填充中间数据结构,但只能通过操纵流)?看起来不干净!!. 谢谢。

0 投票
2 回答
60 浏览

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 样式实现此要求吗?

0 投票
2 回答
220 浏览

mongodb - 如何在 RxJava/RxScala 中缓存 observable

我有一个 REST API,它使用基于 RxScala 的反应式 scala 驱动程序调用 mongodb。

在我的 API 控制器或服务层中,我需要使用缓存来避免使用 hazelcast(或任何其他缓存工具)调用 mongodb

我所有的服务都是异步的并且只返回 observable,知道如何使用 observable 实现缓存吗?