【发布时间】:2016-07-21 14:52:25
【问题描述】:
我必须遍历给定的 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 是未知的,但我想知道如何解决我的问题。
【问题讨论】:
-
您的代码有点不完整,因为 console.log 不是异步函数。你能举一个更具体的例子来说明你正在尝试做什么吗?
-
@slebetman 是的,我试图尽可能地简化它。基本上我想从外部 URL 获取一个 json 对象并从这个 json 文件中获取特定信息,以便将其存储在我自己的数据库中。
-
但是根据示例,您的评论
because resources i not known at the time the functions being executed毫无意义。如果这确实是发生的事情,那么您发布的示例是错误的(您已将其简化到完全消除了问题) -
@slebetman 你是对的,我已经弄清楚问题是什么,但我仍然不知道如何解决它。我已经更新了我原来的问题。它是关于我的迭代索引而不是变量资源。
标签: javascript node.js async.js