λ: folktale data.task - 应用未知数量的任务
λ: folktale data.task - apply an unknown number of Tasks
我想将一个 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>
control.async.parallel
正是您要找的。
I am aware of applicatives, but I want to apply an unknown number of tasks so I don't believe that will be the best approach.
这不应该让你退缩,数组是可遍历的,sequenceA
会完全按照你的要求去做(尽管效率很低)。如果它是在民间故事中实现的,它没有列表甚至 control.applicative
.
control.monad.sequence
应该与应用序列一样工作,但不必要地使用 chain
而不是 ap
。而且 data.task
无论如何都是有问题的,因为 ap
不能从具有相同语义的 chain
派生。
我想将一个 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>
control.async.parallel
正是您要找的。
I am aware of applicatives, but I want to apply an unknown number of tasks so I don't believe that will be the best approach.
这不应该让你退缩,数组是可遍历的,sequenceA
会完全按照你的要求去做(尽管效率很低)。如果它是在民间故事中实现的,它没有列表甚至 control.applicative
.
control.monad.sequence
应该与应用序列一样工作,但不必要地使用 chain
而不是 ap
。而且 data.task
无论如何都是有问题的,因为 ap
不能从具有相同语义的 chain
派生。