2

我们的团队开始学习 fp-ts,我们从一些基本的异步示例开始(大部分来自这里)。依次运行一组Task就很棒了,看起来array.sequence(task)(tasks) 问题来了,在fp-ts中执行并行Task时,限制并发的惯用方式是什么?例如,Promise.map(在 bluebird 中)允许您设置并发限制,例如{concurrency: 4}.

一种解决方案可能是将数组拆分为块,然后使用序列和 flatMap 迭代这些块。但是,这意味着每个块中的每个任务都必须在移动到下一个块之前完成 - 一个长时间运行的任务可能会阻止整个操作。

一定有一些我们缺少的抽象——我们都是 FP 的新手,所以希望这里有更多经验的人可以提供帮助。

4

1 回答 1

1

我能够在 ts-fp git repo 上与乐于助人的人一起找到解决方案。看起来包装 p-map 是要走的路

https://github.com/gcanti/fp-ts/issues/574#issuecomment-424658481

于 2019-05-10T12:12:26.113 回答