我必须迭代给定的JSON对象并为其中的每个对象创建一个任务。给定的任务也需要来自此JSON对象的信息,我想知道如何将这些信息传递给我的任务,以便在执行时可用。
构建我的任务数组:
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);
返回undefined,这对我来说很有意义,因为在执行函数时我不知道索引i,但我想知道如何解决我的问题。
答案 0 :(得分:2)
由于我没有足够的声誉来添加评论,我写的是答案。遗憾。强>
使用paralleLimit有什么特别的理由吗? async.js每个都可以迭代集合并对每个项目执行操作。此函数将函数iteratee并行应用于集合中的每个项目。 async.js each
如果您想限制操作: async.js eachLimit