将参数传递给async.js任务

Pass parameter to async.js task

本文关键字:js 任务 async 参数传递      更新时间:2023-09-26

我必须遍历给定的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是未知的,但我想知道如何解决我的问题。

由于我没有足够的声誉添加评论,我正在编写答案。对不起

使用paralleLimit有什么具体的原因吗?async.js中的每一个都可以迭代集合并对每个项执行操作。此函数将函数iteratee并行应用于集合中的每个项。async.js每个

如果要限制操作:async.js eachLimit