Наша команда начинает изучать fp-ts, и мы начинаем с некоторых простых асинхронных примеров (в основном это здесь ). Выполнение набора задач в последовательности - это здорово, и похоже, что array.sequence(task)(tasks)
Вопрос в том, каков идиоматический способ ограничения параллелизма при выполнении параллельных задач в fp-ts? Например, Promise.map (в bluebird) позволяет вам установить ограничение параллелизма, например {concurrency: 4}
.
Одним из решений может быть разбиение массива на куски, а затем итерация кусков с использованием sequence и flatMap. Однако это означало бы, что каждая задача в каждом чанке должна быть выполнена перед переходом к следующему чанку - одна длительная задача может задержать всю операцию.
Должна быть какая-то абстракция, которую мы упускаем - мы все довольно плохо знакомы с FP, так что, надеюсь, кто-то здесь с большим опытом может помочь.