【问题标题】:λ: folktale data.task - apply an unknown number of Tasksλ:folktale data.task - 应用未知数量的任务
【发布时间】:2017-10-23 08:10:57
【问题描述】:

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

假设我有一个 Task,其中包含 Task 的数组。

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

有没有办法将任务折叠成一个单独的任务来运行它们,或者有更好的方法来处理数据转换。

sn-p 包含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>

【问题讨论】:

  • 什么是Task?你用的是什么库?
  • @Bergi,我添加了图书馆的链接(folktale data.task)
  • 请避免将答案直接编辑到问题中。让答案留在答案中。

标签: javascript functional-programming task folktale


【解决方案1】:

control.async.parallel 正是您要找的。​​p>

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

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

control.monad.sequence 应该与应用序列一样工作,但不必要地使用chain 而不是ap。无论如何data.task 是有问题的,因为ap 不能从具有相同语义的chain 派生。

【讨论】:

  • 感谢您的帮助。 control.async.parallel 是完美的。
猜你喜欢
  • 1970-01-01
  • 2021-04-01
  • 2022-11-23
  • 2021-09-06
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
相关资源
最近更新 更多