【发布时间】:2013-11-26 23:07:50
【问题描述】:
我有一个如下形式的对象。
sortedFilters:
{
task:{...},
appointment:{...},
email:{...}
}
现在我想使用for-in 循环来为async.parallel 构建我的任务数组,其中包含要异步执行的函数:
var tasks = [];
for (var entity in sortedFilters) {
tasks.push(function(callback) {
var entityResult = fetchRecordsForEntity(entity, businessUnits, sortedFilters);
var formattedEntityResults = formatResults(entity, entityResult);
callback(null, formattedEntityResults);
});
}
问题是,在调用函数时,entity 指向循环的最后一个值(在本例中为email)。
在将函数添加到数组的那一刻,我如何确定确切的值?
【问题讨论】:
-
您能否详细说明一下您到底在谈论哪些功能,以及
sortedFilters可以在多大程度上被for…in循环枚举?特别是我没有得到您的样本和async.parallel电话之间的联系。这是在哪里以及如何发生的?
标签: javascript asynchronous foreach async.js