将parameter passing给async.js任务

我必须迭代给定的JSON对象,并为其中的每个对象创build一个任务。 给定的任务也需要来自这个JSON对象的信息,我想知道如何将这些信息传递给我的任务,以便它在执行时可用。

build立我的任务数组:

var asyncScrapeTasks = []; var resources = JSON.parse(body); for(var i=0; i<resources.items.length; i++) { asyncScrapeTasks.push(function (callback) { console.log(resources.items[i].id); }); } 

执行我的任务:

 async.parallelLimit(asyncScrapeTasks, 5, function() { callback(null, "Done"); }); 

我的问题:

现在console.log(resources.items[i].id); 返回未定义,这对我来说是有道理的,因为索引i在执行函数的时候是不知道的,但是我不知道如何解决我的问题。

由于我没有足够的声望来添加评论,我正在写作答案。 抱歉。

有没有什么具体的理由使用paralleLimit? async.js有每个可以迭代收集和执行每个项目的操作。 该函数并行地将迭代函数应用于集合中的每个项目。 每个async.js

如果你想限制操作: async.js eachLimit