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

0 投票
1 回答
509 浏览

scala - 如何在 Scala 的 fs2 功能流中创建离散流?

是否可以在fs2中创建离散事件流?如果是这样怎么做。我刚开始玩图书馆,我知道我有很多东西要学习。但我没有看到任何相关的例子。例如,我想在scalajsswing中为“ mousemove ”或“ click ”创建一个流。我正在寻找类似RxJS的东西,我可以使用Rx.Observable.create创建离散事件,例如:

fs2中的等价物可能不是那么微不足道,但如果有人能建议我如何做的话。我想它会使用HandlerPull/Push数据类型,但我不知道如何。

干杯。

0 投票
1 回答
525 浏览

scala - Scala:文件读取以构建外部合并排序

我想在 Scala 中实现一个外部合并排序。它用于对无法完全放入主存储器的大文件进行排序。

可以在此处找到详细信息:- 外部合并排序算法如何工作?

现在,我需要读取文件块,对其进行排序并将其写入磁盘等

分段读取/写入大文件的最惯用/功能性的方式是什么?

  • 如果我使用 'Source.fromFile(filename).getLines' 方法,我知道我在文件上获得了一个迭代器,并且可以部分读取它。但是当我得到一个迭代器时,在主内存中读取了多少文件?是否可以从中读取固定数量的字节?
  • 关于如何实现这一点的任何其他建议?可能有一些指向 fs2(scalaz-stream)/Akka Stream/Monix 实现的指针,我可以将文件视为 Stream 并以块的形式读取?
0 投票
1 回答
675 浏览

scala - 同时执行两个 fs2 任务(非确定性)

使用 Scalaz Task,我可以使用scalaz.Nondeterminism.both

或与Nondeterminism[Task].gatherUnordered().

我怎样才能对fs2 0.9.x 版本的任务做同样的事情?

0 投票
0 回答
597 浏览

scala - 如何不确定地展平无限 FS2 流

我正在使用 Scala 的FS2 流库

我有一个Stream[F, [Stream[F, A]]内部流和外部流都是无限的(带有适当Async的实例F)。我想最终得到一个Stream[F, A]同时从外部流和内部流中提取的结果,其中外部流中的每个新元素都会替换我从中提取的当前内部流。特别是我想“最终”至少尝试从所有内部流中拉出(尽管我可能会在这样做之前被外部流打断)。

我尝试使用包含当前内部流的外部Async引用来执行此操作似乎以Interrupt抛出异常而告终。

我不要一个简单的flatMap甚至concurrent.join。因为我的内部流是无限的,所以它们永远不会超过有限数量的内部流。

有没有办法通过 FS2 实现这一点?

0 投票
1 回答
312 浏览

scala - 对源自 Stream.emits() 的流进行昂贵的 flatMap() 操作

我刚刚遇到了一个问题,即使用要写入文件的字符串流来降低 fs2 性能text.utf8encode。我尝试更改我的源以使用分块字符串来提高性能,但观察到的是性能下降。

据我所知,它归结为以下几点: 调用flatMap源自 from 的流Stream.emits()可能非常昂贵。根据传递给 Stream.emits() 的序列大小,时间使用似乎是指数级的。下面的代码片段显示了一个示例:

这是一个错误,还是应该避免将 Stream.emits() 用于大序列?

0 投票
3 回答
1006 浏览

scala - Fs2如何折叠然后附加到流

我想附加到Stream

但是下一个流依赖于 previousStream的折叠结果

这是我的做法,但 Streams被评估了两次

链接

我怎样才能实现只评估一次的foldAppend方法。s

0 投票
1 回答
2810 浏览

scala - 在 http4s 中处理多部分内容

我想知道如何使用http4s库处理多部分内容。

想象一个具有以下片段的服务(完整的要点在这里):

如果我执行服务并填写相应的字段,我将获得如下输出:

所以我知道如何获取有关部件的信息,这些部件是 typePart[IO]和 contains headersand的元素body

我想知道如何处理这些部分。例如,在这种情况下,我想打开文件并告知其长度。这样做的惯用方法是什么?

0 投票
1 回答
143 浏览

scala - fs2:检查 Seq(Task) 是否成功

我有一个异步 http4s 客户端,在运行一些请求后,我从中获得了一组结果。我想检查Seq[Task[Response]]所有对象的此集合 (a) 是否已完成Task,并且Response对象是否处于特定状态。

如果我使用Future而不是任务,我会做类似的事情

fs2.Task有没有办法使用代替来实现类似的功能?在我有限的理解中,我假设在某些时候我将不得不调用unsafeRun,这将阻塞Task集合中的每个。

0 投票
1 回答
523 浏览

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 服务的调用返回后同时运行插入语句。这是代码:

0 投票
1 回答
715 浏览

scala - FS2 按顺序运行流

我有一个相当简单的用例。我有两个 Web 服务调用,一个获取产品,另一个获取关系。我想运行 fetchProducts() 首先从产品集中提取一个字段,然后将输出传递给 fetchRelationships(ids: Seq[String]) 以便我可以在产品上重新设置关系。这是代码:

我受到外部 Api 的限制,无法批量获取结果。所以我不确定如何使用 fs2 来表达这一点,或者我是否应该使用它。