问题标签 [fs2]
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 - 如何在 Scala 的 fs2 功能流中创建离散流?
是否可以在fs2中创建离散事件流?如果是这样怎么做。我刚开始玩图书馆,我知道我有很多东西要学习。但我没有看到任何相关的例子。例如,我想在scalajs或swing中为“ mousemove ”或“ click ”创建一个流。我正在寻找类似RxJS的东西,我可以使用Rx.Observable.create创建离散事件,例如:
fs2中的等价物可能不是那么微不足道,但如果有人能建议我如何做的话。我想它会使用Handler和Pull/Push数据类型,但我不知道如何。
干杯。
scala - Scala:文件读取以构建外部合并排序
我想在 Scala 中实现一个外部合并排序。它用于对无法完全放入主存储器的大文件进行排序。
可以在此处找到详细信息:- 外部合并排序算法如何工作?
现在,我需要读取文件块,对其进行排序并将其写入磁盘等
分段读取/写入大文件的最惯用/功能性的方式是什么?
- 如果我使用 'Source.fromFile(filename).getLines' 方法,我知道我在文件上获得了一个迭代器,并且可以部分读取它。但是当我得到一个迭代器时,在主内存中读取了多少文件?是否可以从中读取固定数量的字节?
- 关于如何实现这一点的任何其他建议?可能有一些指向 fs2(scalaz-stream)/Akka Stream/Monix 实现的指针,我可以将文件视为 Stream 并以块的形式读取?
scala - 同时执行两个 fs2 任务(非确定性)
使用 Scalaz Task,我可以使用scalaz.Nondeterminism.both
:
或与Nondeterminism[Task].gatherUnordered()
.
我怎样才能对fs2 0.9.x 版本的任务做同样的事情?
scala - 如何不确定地展平无限 FS2 流
我正在使用 Scala 的FS2 流库。
我有一个Stream[F, [Stream[F, A]]
内部流和外部流都是无限的(带有适当Async
的实例F
)。我想最终得到一个Stream[F, A]
同时从外部流和内部流中提取的结果,其中外部流中的每个新元素都会替换我从中提取的当前内部流。特别是我想“最终”至少尝试从所有内部流中拉出(尽管我可能会在这样做之前被外部流打断)。
我尝试使用包含当前内部流的外部Async
引用来执行此操作似乎以Interrupt
抛出异常而告终。
我不要一个简单的flatMap
甚至concurrent.join
。因为我的内部流是无限的,所以它们永远不会超过有限数量的内部流。
有没有办法通过 FS2 实现这一点?
scala - 对源自 Stream.emits() 的流进行昂贵的 flatMap() 操作
我刚刚遇到了一个问题,即使用要写入文件的字符串流来降低 fs2 性能text.utf8encode
。我尝试更改我的源以使用分块字符串来提高性能,但观察到的是性能下降。
据我所知,它归结为以下几点: 调用flatMap
源自 from 的流Stream.emits()
可能非常昂贵。根据传递给 Stream.emits() 的序列大小,时间使用似乎是指数级的。下面的代码片段显示了一个示例:
这是一个错误,还是应该避免将 Stream.emits() 用于大序列?
scala - fs2:检查 Seq(Task) 是否成功
我有一个异步 http4s 客户端,在运行一些请求后,我从中获得了一组结果。我想检查Seq[Task[Response]]
所有对象的此集合 (a) 是否已完成Task
,并且Response
对象是否处于特定状态。
如果我使用Future
而不是任务,我会做类似的事情
fs2.Task
有没有办法使用代替来实现类似的功能?在我有限的理解中,我假设在某些时候我将不得不调用unsafeRun
,这将阻塞Task
集合中的每个。
scala - FS2 join 不能证明 Seq[fs2.Stream[cats.effect.IO,Int]] <:< fs2.Stream[cats.effect.IO,O2]
我正在尝试使用 fs2 流 0.10.0-M9 和 doobie 版本 0.5.0-M9 从 http 调用中获取一系列对象,然后将其插入到 postgres 数据库中,但我在构建此代码时遇到问题,得到以下错误:
错误:(49, 12) 无法证明 Seq[fs2.Stream[cats.effect.IO,Int]] <:< fs2.Stream[cats.effect.IO,O2]。.join(100)
我想要做的是在对 Web 服务的调用返回后同时运行插入语句。这是代码:
scala - FS2 按顺序运行流
我有一个相当简单的用例。我有两个 Web 服务调用,一个获取产品,另一个获取关系。我想运行 fetchProducts() 首先从产品集中提取一个字段,然后将输出传递给 fetchRelationships(ids: Seq[String]) 以便我可以在产品上重新设置关系。这是代码:
我受到外部 Api 的限制,无法批量获取结果。所以我不确定如何使用 fs2 来表达这一点,或者我是否应该使用它。