0

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

假设我有一个Task包含Task's 的数组。

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>

4

1 回答 1

1

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

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

这不应该让你退缩,数组是可遍历的,并且sequenceA会完全按照你的意愿去做(虽然效率很低)。如果它是在民间故事中实现的,它没有列表,甚至没有control.applicative.

control.monad.sequence应该与应用程序序列相同,但不必要地使用chain而不是ap. data.task无论如何都是有问题的,因为它不能从相同的语义中ap推导出来。chain

于 2017-05-23T12:26:07.720 回答