λ:folktale data.task - 应用未知数量的任务

时间:2017-05-23 11:34:58

标签: javascript functional-programming task folktale

我想将id列表转换为Tasks列表,并同时运行它们,类似于Promise.all。我知道应用程序,但我想应用未知数量的任务,所以我不相信这将是最好的方法。

假设我的Task包含Task的数组。

Task.of([Task.of(1), Task.of(2)])

无论如何,将任务折叠成一个将全部运行它们的任务,或者是否有更好的方法可以处理数据转换。

如果您想提供示例,则可以复制包含data.Task的代码段。

http://folktalegithubio.readthedocs.io/en/latest/api/data/task/

// Task([Task])
Task.of([0, 1, 2])
  .map(t => t.map(Task.of))
  .fork(console.error, console.log)
<script src="https://codepen.io/synthet1c/pen/bWOZEM.js"></script>

1 个答案:

答案 0 :(得分:1)

control.async.parallel正是您所寻找的。

  

我知道应用程序,但我想应用未知数量的任务,所以我不相信这将是最好的方法。

这不应该让你退缩,数组是可遍历的,而sequenceA会完全按你想要的那样(尽管效率很低)。如果它是在民间故事中实现的,那里没有列表,甚至没有control.applicative

control.monad.sequence应该与应用序列的工作方式相同,但不必使用chain代替ap。而data.task无论如何都是有问题的,因为ap不能从具有相同语义的chain派生出来。