Concurrency 如何限制fp-ts中的并发性

Concurrency 如何限制fp-ts中的并发性,concurrency,functional-programming,fp-ts,Concurrency,Functional Programming,Fp Ts,我们的团队正在开始学习fp ts,我们将从一些基本的异步示例开始(主要是从中提取的)。按顺序运行一组任务非常好,它看起来像是数组。顺序(任务)(任务) 问题是,在fp ts中执行并行任务时,限制并发的惯用方法是什么?例如,Promise.map(在bluebird中)允许您设置并发限制,如{concurrency:4} 一种解决方案可能是将数组拆分为块,然后使用sequence和flatMap迭代这些块。然而,这意味着每个区块中的每个任务都必须在进入下一个区块之前完成——一个长时间运行的任务可能

我们的团队正在开始学习fp ts,我们将从一些基本的异步示例开始(主要是从中提取的)。按顺序运行一组任务非常好,它看起来像是数组。顺序(任务)(任务) 问题是,在fp ts中执行并行任务时,限制并发的惯用方法是什么?例如,Promise.map(在bluebird中)允许您设置并发限制,如
{concurrency:4}

一种解决方案可能是将数组拆分为块,然后使用sequence和flatMap迭代这些块。然而,这意味着每个区块中的每个任务都必须在进入下一个区块之前完成——一个长时间运行的任务可能会阻碍整个操作


我们一定缺少了一些抽象概念——我们对FP都很陌生,所以希望这里有更多经验的人能提供帮助。

我在ts FP git repo找到了一个解决方案。看起来包装p-map是一个不错的选择


显然,fp ts库的
任务类型不支持此操作。因此,您必须自己实现它,可能需要一个任务队列。FP中没有用于此问题的通用组合符。谢谢,很高兴知道!