gpt4 book ai didi

javascript - Async.parallel 与一系列任务

转载 作者:行者123 更新时间:2023-11-30 18:10:26 25 4
gpt4 key购买 nike

我在弄清楚如何制作具有不同参数的函数数组时遇到了问题。我正在使用 coffeescript 和 async但我认为这是我对javascript的理解有问题。

我想创建一组具有不同任务的函数。

names = ['Jeff', 'Maria', 'Steve']
tasks = []

for name in names
tasks.push (callback)=>
@controller.get_person name, (person) =>
callback(null, person)

async.parallel(tasks, cb)

问题是任务被 Steve(总是数组中的最后一个)调用了 3 次。我该如何做到每个名字都有一个任务?

最佳答案

实际上,在这种特殊情况下,您可能应该使用异步的 map :

getPerson = (name, callback) =>
@controller.get_person name, (person) ->
callback(null, person)

async.map names, getPerson, (err, persons) ->
// Do stuff with persons

请注意,如果您的 @controller.get_person 方法遵循将任何错误作为第一个参数传递给回调的节点实践,这就足够了:

async.map names, @controller.get_person, (err, persons) ->
// Do stuff with persons

也许要记住一些事情。

关于javascript - Async.parallel 与一系列任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com